It was Ricciardo's third win of the year, his second on the trot, and the first victory for an Australian at Spa since Sir Jack Brabham triumphed in 1960.
Williams' Valtteri Bottas passed Ferrari's Kimi Raikkonen to seal the final podium spot, while Red Bull's Sebastian Vettel prevailed in a thrilling four-way scrap for fifth.
As Red Bull celebrated, Mercedes had to deal with the controversy surrounding Hamilton and Rosberg’s collision on only the second lap. The Briton had got the better start and led into La Source, with Rosberg briefly dropping to third behind Vettel.
Having fought back past Vettel, Rosberg moved on to his team mate’s tail and attempted to go round the outside heading into Les Combes. Hamilton had the line, however, and though Rosberg attempted to avoid contact the pair clashed, with Rosberg’s right front wing endplate slashing into the left rear corner of Hamilton’s car.
The Briton suffered a puncture almost instantaneously, and that was it for his race hopes. As he lost huge amounts of time limping back to the pits and dropped to 19th, Rosberg took the lead but reported aero damage to his front wing which prevented him from escaping from Vettel and Ferrari’s Fernando Alonso.
Ricciardo, meanwhile, had moved up quickly from fifth on the grid to pass the Spaniard on the fourth lap and then the German a lap later.
Rosberg kicked off the first round of pit stops when he stopped for fresh tyres and a new front wing on lap eight, handing Ricciardo the lead - the Australian chased by Vettel and Williams’ Valtteri Bottas. Ricciardo and Bottas then traded the lead during their pit calls, as Rosberg had to battle in the upper midfield as Mercedes were forced to juggle with his strategy.
In the end he made his final stop, for a set of soft compound tyres, on the 34th lap, rejoining in between Ferrari’s Kimi Raikkonen - who had led during the first cycle of pit stops - and Bottas. The latter initially passed Rosberg, but the German quickly fought back, passed Raikkonen and then set off in pursuit of Ricciardo.
The Australian’s lead was slashed from 21.6s on lap 35 to 4.3 by the 43rd, but he hung tough and crossed the line 3.3s ahead of Rosberg, whose move on the second lap was roundly condemned by Mercedes team bosses Niki Lauda and Toto Wolff.
Bottas was able to edge ahead of Raikkonen, but the Williams was 28 seconds behind Ricciardo at the finish.
Behind them, Vettel, the McLarens of Kevin Magnussen and Jenson Button, and Alonso waged a fantastic battle for fifth place. Alonso, whose race was compromised by a five-second stop-and-go penalty because mechanics were still working on his Ferrari when the grid formation lap began, had been fighting Magnussen since the 36th lap, but the Dane resolutely resisted his challenge.
One lap from the finish, however, Alonso attacked again along the Kemmel straight, only to be edged onto the grass by Magnussen - an incident which would earn the Dane a post-race penalty even as it set up a thrilling four-way fight to the flag.
Button instantly attacked the delayed Alonso at Les Combes, only to then lose momentum behind his team mate, allowing Alonso to move back ahead. Vettel passed both and, on the final lap, attacked Magnussen at La Source before finally outfoxing him on the exit of the corner to take fifth. At the same time Alonso tagged the rear of Vettel's car and lost part of his front wing, which Button was able to take advantage of to snatch seventh.
Vettel therefore beat Magnussen to fifth, but the Dane's subsequent 20-second penalty dropped him from sixth to 12th in the final classification.
Sergio Perez drove well to take ninth on the road for Force India, while team mate Nico Hulkenberg finished 11th behind Toro Rosso's Daniil Kvyat - all three eventually scoring points given Magnussen's penalty.
Felipe Massa had an appalling race for Williams compromised by early debris damage and couldn’t better 13th ahead of Jean-Eric Vergne’s Toro Rosso, and the Saubers of Adrian Sutil and Esteban Gutierrez.
Max Chilton and Marcus Ericsson had a race-long fight, which ended with the Marussia driver just six-tenths of a second ahead of the Caterham pilot. Their respective team mates, Jules Bianchi and Andre Lotterer, were out of luck. The Frenchman cut a tyre when he collided with Romain Grosjean’s Lotus on the opening lap, while the German’s F1 debut ended when his Caterham stopped by the side of the track on that same lap. The same fate befell Lotus’s Pastor Maldonado.
In the drivers’ stakes Rosberg is now 29 points ahead of Hamilton, 220 to 191, as Ricciardo closes in on the latter with 166. Alonso has 119 from Bottas on 110 and Vettel on 98.
In the constructors’ points table Mercedes have 411 to Red Bull’s 254, Ferrari’s 158 and Williams’ 150, while McLaren move back ahead of Force India with 111 to 100.