It was Button's first victory at Spa and the 14th of the British driver's career and probably one of the easiest as he led from start to finish, oblivious to the mayhem behind him.
“This is such a special circuit, so to get a victory here from light to flag is very special,” Button said. “It hasn't been an easy year for me. We're going to enjoy this for a little while longer before we head to Monza and hopefully do the same.”
Button triumphantly zigzagged across the track as he approached the finish line and then clapped his hands together in celebration. He then stood on his McLaren and leaned his head back as he clenched both fists.
Defending champion Sebastian Vettel benefited from the chaos to finish second and trim Alonso's overall lead to 24 points. Kimi Raikkonen was third, continuing the consistent form he's shown all season long.
The crash, which was triggered by Lotus driver Romain Grosjean, also took out Mexican driver Sergio Perez, and Grosjean himself.
Grosjean went for a small gap and clipped Hamilton's McLaren. That sent both cars spinning and led to Grosjean's Lotus flying over Alonso's Ferrari, which then took out Perez's Sauber. All four drivers escaped unhurt.
“I'm fine and 100 (percent) already thinking (about) Monza!” Alonso said on his Twitter page.
A visibly frustrated Hamilton briefly confronted Grosjean after the incident and tapped the side of his own helmet with his finger after getting out of his car.
Grosjean's actions may be investigated as he took the dangerous option of changing direction moments after the start as he went for the gap.
Following a miserable day's qualifying on Saturday, Vettel was relieved to get on the podium after starting from 10th on the grid.
“It was a crazy race, after the first corner where a few cars went off,” the German driver said. “The car was quite good in the race and we were able to pick up some pace. It was a fantastic race, great to come second.”
Germany's Nico Hulkenberg was fourth for Force India, ahead of Ferrari's Felipe Massa in fifth and Red Bull's Mark Webber, who had started from 12th because of a gearbox penalty.
Alonso, who had picked up points in every race this season, was lucky to escape serious injury as Grosjean's Lotus went over his car and narrowly missed the Spaniard's head.
Button was not affected by the crash and maintained his lead as the safety car went out onto the track and piles of smashed car parts were cleared from the track.
A veteran of 222 races, Button shrugged off the incident. He was seven seconds clear of Nico Hulkenberg after 12 laps.
Michael Schumacher, chasing his second podium position of the season in his 300th career GP, drove aggressively on the Spa circuit where he made his F1 debut 21 years ago. The 43-year-old stormed into second after 15 laps, with Vettel climbing to third as they pushed their soft tires to the limit.
Schumacher proved to be a bit too aggressive, however.
It was nervous in the pit lanes, too, as Heikki Kovalainen's Caterham was released too quickly and clipped an HRT entering the pit lane for a tire change.
Button came in on lap 22 for his only stop, and still had a comfortable lead of 13 seconds on Vettel coming out.
McLaren sounded supremely confident that the one-stop strategy would carry Button all the way, saying “Plan A is good” over the race radio and that he was “pulling away” from Raikkonen.
Schumacher pitted for a second tire change with eight laps remaining.
Raikkonen's Lotus team, meanwhile, ordered him to save 10 percent on KERS for the remainder of the race.
With two laps remaining, Lotus then asked Raikkonen to step up the pace just to make sure of third place, to which the Finnish driver retorted bluntly, saying “well, give me more power then.”