Dwyane Wade added 23 points and 10 rebounds and Shane Battier scored 18 points on 6-for-8 shooting from 3-point range for Miami. James made 5 of 10 3s, all the while hounding Spurs star Tony Parker on defense to make the Heat the first back-to-back champs since the Lakers in 2009-10.
Tim Duncan had 24 points and 12 rebounds for the Spurs, who were trying to become the first road team to win a finals Game 7 since Washington in 1978. Kawhi Leonard added 19 points and 16 rebounds.
Mario Chalmers scored 14 for Miami.
Parker had 10 points on 3-for-12 shooting and four assists, and Manu Ginobili scored 18 points for the Spurs. San Antonio lost for the first time in five finals appearances.
The Heat led just 72-71 going into the fourth quarter after a buzzer-beating 3-pointer by Chalmers. Battier hit his fifth 3 of the night and Chalmers scored on a layup for a 79-75 lead with 7:30 to play, but the proud Spurs never faded.
The Spurs missed seven of their first 10 shots and turned the ball over five times in the first seven minutes of the fourth quarter, with the heart-breaking loss in Game 6 finally taking its toll.
Duncan's turnover led to Battier's sixth 3-pointer, a corner dagger that gave Miami an 88-82 lead with 3:21 to go. The delirious Heat crowd leapt to its feet, sensing another Larry O'Brien trophy presentation in South Beach and they didn't sit down for the rest of a thrilling finish.
Leonard's 3 made it 90-88, but Duncan missed a putback and James knocked down a 19-foot jumper with 27.9 seconds to go, sealing the victory as the fans chanted along to the White Stripes' "Seven Nation Army," a trademark celebration at American Airlines Arena.
Confetti rained down the court, and James was surrounded by teammates and clicking cameras after a tour-de-force finish.
Danny Green, for five games the favorite for finals MVP thanks to his record-setting 3-point shooting, missed his first eight shots and finished with five points on 1-for-12 shooting, while Game 6 hero Ray Allen was 0 for 4 with three turnovers for Miami.
The Heat have been to three straight finals, just like they envisioned when Pat Riley brought James, Wade and Bosh together three summers ago. But it's been anything but easy for the NBA's latest super team. They lost to Dallas in 2010, suffering the final defeat in Game 6 on their home floor, then rebounded to steamroll the Oklahoma City Thunder last season.
This regular season was shaping up as a coronation more than a competition, with the Heat rattling off 66 victories, including a staggering 27 in a row. They entered the playoffs with an air of invincibility, but were pushed as hard as they've ever been.
In the proud Spurs, they faced an aging core that simply wouldn't give in, which had to make this victory their most satisfying yet.
The Heat were all but eliminated on Tuesday night, down 13 points at the start of the fourth quarter and five with 21 seconds to play, with the home fans streaming out of American Airlines Arena. Then James hit a 3, Ray Allen hit another, and the Heat outlasted San Antonio in overtime to keep their hopes of defending their title alive.
"It's like you have a second chance on life," Bosh said. "You're not going to waste it. We were revived. We were dead. We brought ourselves back to life."
The Heat made the most of the kind of second chance that the Spurs have so rarely given over the years. James found the perimeter shooting that had been lacking for most of the series, hitting consecutive 3s in the third quarter to get Miami going after a ragged start.
The reigning MVP also locked down Parker, the focal point of the Spurs offense, forcing him to give the ball up earlier in the shot clock than he wanted.
As the game wore on, the Spurs wore down. Ginobili fumbled an easy pass out of bounds, then threw an errant pass behind Gary Neal, opening the door for James, who hit a 17-foot jumper for an 83-77 lead with 5:41 to play.
Chris Bosh was scoreless with seven rebounds for the Heat.
The Heat were made for moments like this. They were made to be tested. They were assembled to have the talent, the makeup and the swagger to withstand even the proudest challengers. And that's what they did.
For James, it was another step toward rarefied air. Had the Heat lost, James would have fallen to 1-3 in the NBA's championship rounds, and his legion of critics would have been banging on his door with more "He's no Jordan" vitriol.
Instead, James delivered with the clutch performances that have now become the norm for him.
He rescued the Heat in Game 6, scoring 16 points in the fourth quarter, including a 3-pointer that put Miami in position to force overtime on Allen's 3. Then he followed that up with a sterling Game 7 to push those Spurs further toward the sunset of an incredible, decade-long run.
James missed four of his first six shots, but started to find a rhythm late in the second quarter. He converted a three-point play on an acrobatic drive to the rim and hit a 3-pointer from the top of the key for a 33-27 lead, bringing the white-clad home crowd to their feet.
Duncan just wouldn't let the Spurs fade. The 37-year-old had a three-point play, four free throws and another layup that tied the game at 40 and Ginobili's two free throws gave the Spurs the lead again at 42-40.
He scored 10 straight point in the third quarter to keep the Heat in it, hitting consecutive 3-pointers, and locked down Parker on defense, all but eliminating San Antonio's offensive focal point.
It was a heart-breaking way to end it for these Spurs, who were 21 seconds from title No. 5 when everything went wrong in Game 6. Now, once again, they will face proclamations of their demise. Only this time, it may be harder to hold those off.
Duncan is 37, but coming off an All-NBA First Team season and a vintage performance in the finals. The 31-year-old Parker is nearing his apex after one of his finest seasons. But Ginobili will turn 36 next month and will be a free agent, perhaps marking the end of the three-person core that helped put the Alamo City on the NBA map, and keep it their for 10 years.
They gave it their all, these Spurs. But in the end, James was just too much, and a prophecy came to be.
Back in 2007, when the Spurs swept James and the Cleveland Cavaliers for the franchise's fourth title, Duncan found the young superstar for a quiet moment to tell him that the league would one day be his.
Now James has four MVPs, two Olympic golds and back-to-back titles on his resume. Duncan has been right so many times throughout his career. This time, it's at his own expense.