The Hornets’ Frank Kaminsky, who scored 14 points, goes up for a shot against the Wizards’ Ian Mahinmi during the first half Saturday night. (Jeremy Brevard/USA Today Sports)

The Washington Wizards have spent much of this season vacillating between playing defense or not, yet their offense has been a constant. On Saturday night, their shot-making ability failed in an ugly 98-93 loss to the Charlotte Hornets.

The Wizards (42-27) could not overcome a meager three-point deficit at the start of the fourth quarter, simply because they were unable to make shots. No Washington player made more than six shots on the night. Bradley Beal drained a three-pointer with 1:04 to play, trimming the Wizards’ deficit to four, but Washington could not produce another clutch make. On the team’s next offensive possession, John Wall hurtled to the rim for a wild layup that went awry.

When the Wizards had a chance to tie the score on their last true offensive play, Beal’s three ricocheted off the front rim and Charlotte’s Marvin Williams secured the rebound, then sealed the game by making a pair of free throws with 9.6 seconds remaining. Although Washington held Charlotte under 100 points and limited the Hornets to 42.7 percent shooting, the Wizards’ offensive execution did not live up to the defensive performance.

“It was definitely a hard-fought physical game,” Coach Scott Brooks said. “I love our guys’ effort [on a] back-to-back. We came with a great energy and juice on the defensive end. Give them credit. They defended just as well as we did but made a few more shots than us. We just couldn’t make shots.”

Wall finished with 19 points (5-for-16 shooting), while Beal added 18 (6 for 14) and Otto Porter Jr. (4 for 11) scored 16 — but Washington shot a season-low 36.7 percent from the field while blowing 22 looks from beyond the three-point arc.

“It was one of those nights where you just couldn’t make shots,” Wall said. “I think we did a great job of moving the ball, guys got great looks, missed a couple free throws that hurt us, but other than that, we just couldn’t get into a rhythm. Couldn’t make shots.”

The pace of the game slowed to a crawl midway through the first quarter and continued through the half as both teams shot under 36 percent and combined for only 26 made field goals. Such rudimentary offense might have been expected for Charlotte (30-39) — on Wednesday, the team scored a season-low 77 points in a road loss to the Indiana Pacers. But for the Wizards, who entered with the fifth-highest scoring average in the NBA (109.1 points per game), the first half was a rare “F” in a season’s worth of offensive master classes.

It didn’t help that Beal picked up two fouls in the first quarter and two other primary scoring options — Wall and Porter — missed 8 of 10 shots in the first 12 minutes.

“Obviously,” Hornets Coach Steve Clifford said, “it wasn’t a pretty game to watch.”

Through the second quarter, the Wizards’ reserve unit couldn’t brighten the game as four of the five bench players made just one shot apiece and combined to shoot 26 percent through the half.

While the Hornets showed signs in the third quarter of breaking out of their offensive funk, Wall inched closer to the edge.

Late in the quarter, after Wall was fouled, a conversation between Wall and Charlotte’s Frank Kaminsky crossed the line in the view of official Danny Crawford. Both received technical fouls, but Wall, who has 14 on the season, now must avoid getting his 16th before the end of the regular season to avoid a one-game suspension as well as a $5,000 fine.

“It was just a back-and-forth talk. Just a common talk you have,” Wall said, explaining his exchange with Kaminsky over a foul call, “and Danny just came in and said: ‘Technical fouls.’ I’ve heard worse than that before and vulgar words have been said, which weren’t said then [with Kaminsky], and then they just slap a technical foul. I’m getting tired of it.”

By the fourth quarter, at last, the teams began to make shots. Kaminsky devoured his matchup against center Ian Mahinmi, mixing in a couple of jumpers with one interior finish. When Kaminsky (14 points) stretched beyond the arc for his second three-pointer of the fourth quarter, the Hornets opened their largest lead of the game, 78-69 with 7:46 remaining, and held on, thanks to a rare night of offensive futility for the Wizards.

“It’s tough,” Beal said. “We pride ourselves on defending, and we defended well, but we just couldn’t make any shots.”