James scored 32 points and helped the Heat rush to an 18-2 lead, but the Thunder came close to stealing the contest after trailing by seven in the final minute.
With the series tied at 1-1, Miami will host the next three games and have a chance to win the NBA title at home. The first of those contests will be played Sunday.
A Miami win appeared to be a certainty after Chris Bosh slammed home a dunk to give the Heat a 98-91 cushion with 58 seconds to go.
James then missed a 3-pointer with 15 seconds to go and Oklahoma City had a chance to tie, which the Thunder attempted to do on a baseline jumper by Durant. Durant's shot misfired, however, and James grabbed the rebound -- setting up the two free throws that clinched the victory.
Wade scored 24 points, Shane Battier had 17 and Bosh produced 16 in his first start since suffering an abdominal strain during the second-round series against Indiana.
Bosh missed nine playoff games with the injury and then came off the bench in four contests, including the opener of the Oklahoma City series.
Rosie O'Donnell unveils nearly 50-pound weight loss
Members of Congress to keep receiving porn magazine