Erik Spoelstra called it a game for “basketball aficionados.” If “aficionados” is code for “catatonics,” then the Heat’s coach was onto something.

In somewhat of an enigma, it was arguably the best ugly game the Heat has played this season. Statistically, LeBron James had one of his worst scoring efforts of the season, but the Heat eked out a 98-91 victory Friday night against the talented and miserly Memphis Grizzlies.

Hey, every game of a 13-game winning streak can’t be a crown jewel. This one was a gem, but unpolished. Consider: The game between evenly matched but contrasting teams was just the eighth time in NBA history that two teams with winning streaks of at least eight had faced one another.

“He made winning plays in the fourth quarter,” Spoelstra said of James. “He controlled the game playing de facto point guard with Norris [Cole] and Mario [Chalmers] out midway through the fourth quarter.”

The Grizzlies entered AmericanAirlines Arena riding an eight-game winning streak, but Miami held Memphis to 42.9 percent shooting. James had an off night overall, but he drained a clutch three-pointer with 24.2 seconds remaining to give the Heat a four-point lead. From there, James secured the lead at the free-throw line, making 5 of 6 attempts in the final 17 seconds.

“I’ve got confidence I’m going to knock it down, just like all the other ones I’ve missed,” James said. “I had confidence in those, too, but they just [didn’t] go down. That’s how the ball goes sometimes. But I’m always confident in my next shot; [Dwyane Wade] gave me a great pass, and I was able to knock it down.”

James went 4 of 14 from the field for 18 points, but for much of the fourth quarter his streak of 475 consecutive games with at least 10 points seemed in jeopardy. He had four points entering the final period but muscled his way to the rim and through the Grizzlies’ powerful backcourt for 14 points in the fourth quarter. James’ season low is15 points.

Of course, in classic James style, he nearly finished with a triple-double despite three quarters worth of offensive struggles. He had 10 assists and eight rebounds to go along with his 18 points. He was 8 of 12 from the free-throw line.

It was only the second time in the past 11 games that the Heat had scored fewer than 100 points. Miami (42-14) is now one victory from tying its franchise-record win streak. In a perfect scenario, the Heat will take its shot at history against the Knicks at Madison Square Garden on Sunday.

Wade, whose rejuvenated game recently has been undervalued because of James’ individual success, carried the Heat offensively despite a difficult matchup against Tony Allen, the Grizzlies’ ace defender and one of the best in the league. Wade finished with 22 points, going 9 of 16 from the field. He had eight assists, four rebounds, two steals and a blocked shot.

Wade missed two free throws with 3:04 left, which allowed the Grizzlies to tie the game at 85-85 on their next possession. From there, the Heat distanced itself.

Chris Bosh, who played inconsistently at best, delivered his biggest basket with 2:20 remaining when he found a sliver of space in the paint to receive a bounce pass from Wade. Bosh made the layup, drew contact and converted the and-one free throw to give the Heat an 88-85 lead.

After a defensive stop, Wade streaked down the court for a breakaway dunk. But the Grizzlies wouldn’t go away. Marc Gasol answered with 47.8 seconds remaining, cutting the Heat’s lead to a point. James then responded with his clutch three-pointer.

Gasol led the Grizzlies (38-19) with 24 points and nine rebounds. Mike Conley Jr. and Zach Randolph had 14 points each. Memphis outrebounded Miami 38-35. In its November meeting with the Grizzlies, the Heat was outrebounded by 10 and lost 104-86.

“We’ve proven we’re a very good defensive team when we’re committed to it,” Spoelstra sad.

After missing Tuesday’s game with a strained hamstring, Shane Battier returned to action and delivered 10 points, including two three-pointers, and six rebounds. Ray Allen had 10 points and two three-pointers as well. Overall, the Heat was 10 of 19 from three-point range, while the Grizzlies were 4 of 13 from long distance.

Slow, big and methodical, the Grizzlies dictated the pace in the first half. Despite the game’s tempo, the Heat held the Grizzlies to 38.5 percent shooting and led 42-41 at the break. In effect, the Heat beat the Grizzlies at their own game.

James had just four points in the first half but was still an all-around threat and contributor. He had four assists and three rebounds in the first quarter and matched up against Randolph in the paint in the second quarter. Randolph and Gasol each had 10 points at halftime, and the Grizzlies outrebounded the Heat 23-19 to begin the game.