Jeff Green added 25 points for the Thunder (2-2), who didn't take their first lead until there was 3:04 left but didn't trail after that. Etan Thomas, who grew up in Tulsa, made two free throws with 11.4 seconds left to make it 95-91 and Durant made one of two from the line to seal the win.
"Even though it's preseason, we were more poised in the fourth quarter and did what we had to do to get the win," said Durant, who scored 30 points for the second straight preseason game.
"I was on the bench with five fouls. To make up for all that time, I had to play in the fourth quarter. But it feels good to get in a real game situation and win the game at the end."
Michael Beasley led Miami (0-4) with 24 points, while Daequan Cook scored 14.
The Heat played without star guard Dwyane Wade, who missed his second straight preseason game with a strained muscle in his left rib cage. He suffered the injury a week earlier in an exhibition game against Orlando. Miami coach Erik Spoelstra said Wade practiced Monday and Tuesday but that it made sense to rest him at least one more game.
Spoelstra said Wade might play Thursday night when the Heat face the New Orleans Hornets in Kansas City, Mo. Wade dressed Wednesday night and said before the game that if it was a regular-season game, he would likely try to play.
Miami also played without center Jamaal Magliore, who Spoelstra said had a "slightly tweaked" ankle, an injury suffered during a practice. But guard Carlos Arroyo, signed Monday to a one-year contract, made his debut with the Heat but didn't score.
"You have to embrace defense on the road," Spoelstra said. "There are a lot of circumstances on the road and obstacles and distractions. There's an important lesson to be able to try to win these distinctly on the road."
Miami led by as many as 14 points in the first half as Durant picked up his fourth foul and sat out the final 5 1/2 minutes. The Heat led 47-41 at halftime.
A tip-in by Thomas pulled Oklahoma City to 53-52, but Miami responded with a 15-4 run to restore its lead to 68-56.
Durant picked up his fifth foul with 6:35 left in the third quarter while guarding Beasley and again went to the bench, but returned to start the fourth quarter and fueled a rally, pulling the Thunder even at 79-79 on a 3-pointer with 6:12 left. Oklahoma City went ahead 87-86 with 3:04 left on a free throw by Russell Westbrook.
The Thunder, with its starting lineup on the floor, outscored Miami 13-5 during the final four minutes.
"We've had four very close exhibition games, which is great," Oklahoma City coach Scott Brooks said. "It was nice to see our guys making plays down the stretch. Those are winning basketball plays that we've stressed and talked about throughout camp."
NOTES: Among those in the crowd of 10,427 at the BOK Center were members of the University of Tulsa's basketball team, who opted to watch the Heat-Thunder game instead of an on-campus football game between Tulsa and No. 5 Boise State. ... Thunder Chairman Clay Bennett, who promised last year when the franchise moved to Oklahoma that the Thunder planned to make it a tradition to play exhibition games in Tulsa, also attended the game. Tulsa and Oklahoma City are about 90 miles apart. ... Thunder C Nenad Krstic returned after missing Oklahoma City's win over Phoenix on Monday with a sinus infection. ... Thomas started at center for the Thunder in his first competitive game in his hometown since 1996, when he helped Booker T. Washington High School win a state title. He scored 11 points.