It was Button's first victory at Spa and No. 14 for the British driver's career. 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.
"The car felt very good to drive and I could control the degradation of the tires. It's always easier to do that when you're leading," said Button, who climbed to sixth place overall. "It's a massive long shot to win the title, but today proves that you can claw back 25 points very quickly. There's still 63 points to make up, but anything's possible."
Alonso, who is chasing his third F1 title, was relieved after he felt OK following the scary wreck.
"You can have an injury in your hand or your head with a crash like that, so I am lucky in that aspect," Alonso said. "I felt a train coming with a big, big hit."
Defending champion Sebastian Vettel finished second and cut Alonso's lead to 24 points, putting the two-time champion right back in contention.
"I was reasonably confident because I know anything can happen here and you can overtake," Vettel said.
Kimi Raikkonen was third, continuing the consistent form he's shown all season long with his third straight podium and sixth overall.
"My car was not the nicest to drive the whole race," Raikkonen said. "I was fighting to get the best out of it and we managed to get some key points, so that was the main thing."
The early crash also took out Mexican driver Sergio Perez and Grosjean, who received a one-race ban for dangerous driving and will miss the Sept. 9 stop in Monza, Italy.
Grosjean went for a small gap and clipped Lewis 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 injury.
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.
"I honestly thought I was ahead of him and there was enough room for both cars," Grosjean said. "I didn't try deliberately to try and squeeze him or anything like that. The first corner situation obviously isn't what anyone would want to happen."
Following a miserable qualifying performance 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 on the track and piles of smashed car parts were cleared away.
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 German 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.
He almost careered into Vettel at the Bus Stop chicane as he cut across him going into the pits for a tire change. Schumacher, who finished seventh, faced a stewards' inquiry for the risky move.
Vettel said it was a moment of confusion and Schumacher should not be punished.
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.