An afternoon of high drama at the Circuit Gilles Villeneuve ended behind the safety car after Brazilian Felipe Massa's Williams smashed into the back of Sergio Perez's Force India as they entered the final lap.
Ahead of them, Ricciardo cruised to the chequered flag with championship leader Nico Rosberg second for Mercedes after starting on pole position in what turned out to be a thriller in Montreal.
Last year's winner Sebastian Vettel, the quadruple world champion, was third for Red Bull.
"I'm still a bit in shock," beamed Ricciardo from the podium, where he was interviewed by 1995 Canadian GP winner Jean Alesi. "It's an amazing feeling right now."
Rosberg still stretched his lead to 22 points after team mate Lewis Hamilton, his closest rival, retired with a rear brake problem.
"It's been a decent weekend and the points are important so I'm definitely pleased with that," said Rosberg, who won two weeks ago in Monaco.
He and Hamilton had fought wheel-to-wheel, their cars touching at the hairpin on lap 46, before the 2008 world champion suffered his second blank in seven races.
"This has been a good track for me, so to come here and not finish is sad for the team but we've got many more races ahead of us, so let's hope that there's more fortune coming in the future," said Hamilton.
The Mercedes pair had built up a comfortable lead but reported power problems half way through the race, with Rosberg holding out until he was passed by Ricciardo with two laps to go.
"The boy has been brilliant all year," declared Red Bull boss Christian Horner. "It was an incredible drive. It's been a great team effort. We beat them (Mercedes) at the most unlikely track. We are closing the gap."
Until Sunday, Mercedes had won every race and finished one-two in the last five.
Red Bull, who won the last nine races of 2013 with Vettel, have been racing to catch up after engine partner Renault started the year on the back foot.
"It's the first time we have beaten Mercedes this year and we managed to get a victory," said Horner. "We're realists, we know we have a massive challenge ahead of us but there is still a long way to go in this championship. We're not even at the halfway point."
Perez and Massa, who a few laps earlier had looked capable of getting on the podium, were both reported to be unscathed after their heavy impact with the barriers.
Starting alongside each other on the front row, Rosberg and Hamilton - a three times winner in Canada - had looked poised for another of their private duels.
Hamilton tried to force his way past at the start but was squeezed out and lost a place to Vettel.
Rosberg was unable to capitalise on Hamilton's setback, however, with the safety car immediately deployed after the two Marussias collided behind them and left debris scattered across the track.
The German, who was warned by stewards after he cut the chicane while defending against Hamilton, said it had been a tough afternoon.
"I had to readjust all my braking points because (I was) arriving with so much less speed and pushing all these buttons to try and get the thing going again," he said.
Finland's Valtteri Bottas finished seventh for Williams with Frenchman Jean-Eric Vergne eighth for Toro Rosso and Danish rookie Kevin Magnussen ninth for McLaren. Kimi Raikkonen took the final point for Ferrari.
It was a disastrous trip to Canada for Marussia, who had celebrated scoring their first ever championship points in Monaco.
1. Daniel Ricciardo (Australia) RedBull - Renault 1:39:12.830
2. Nico Rosberg (Germany) Mercedes +00:04.236
3. Sebastian Vettel (Germany) RedBull - Renault 00:05.247
4. Jenson Button (Britain) McLaren 00:11.755
5. Nico Huelkenberg (Germany) Force India - Mercedes 00:12.843
6. Fernando Alonso (Spain) Ferrari 00:14.869
7. Valtteri Bottas (Finland) Williams-Mercedes 00:23.578
8. Jean-Eric Vergne (France) Toro Rosso - Renault 00:28.026
9. Kevin Magnussen (Denmark) McLaren 00:29.254
10. Kimi Raikkonen (Finland) Ferrari 00:53.678
11r. Sergio Perez (Mexico) Force India - Mercedes 1 lap
12r. Felipe Massa (Brazil) Williams-Mercedes 1 lap
13. Adrian Sutil (Germany) Sauber - Ferrari 1 lap
14r. Esteban Gutierrez (Mexico) Sauber - Ferrari 6 laps
r. Romain Grosjean (France) Lotus - Renault 9 laps
r. Daniil Kvyat (Russia) Toro Rosso - Renault 21 laps
r. Lewis Hamilton (Britain) Mercedes 23 laps
r. Kamui Kobayashi (Japan) Caterham - Renault 46 laps
r. Pastor Maldonado (Venezuela) Lotus - Renault 48 laps
r. Marcus Ericsson (Sweden) Caterham - Renault 62 laps
r. Max Chilton (Britain) Marussia - Ferrari 70 laps
r. Jules Bianchi (France) Marussia - Ferrari 70 laps
1. Nico Rosberg (Germany) Mercedes 140
2. Lewis Hamilton (Britain) Mercedes 118
3. Daniel Ricciardo (Australia) Red Bull 79
4. Fernando Alonso (Spain) Ferrari 69
5. Sebastian Vettel (Germany) Red Bull 60
6. Nico Huelkenberg (Germany) Force India 57
7. Jenson Button (Britain) McLaren 43
8. Valtteri Bottas (Finland) Williams 40
9. Kevin Magnussen (Denmark) McLaren 23
10. Sergio Perez (Mexico) Force India 20
11. Felipe Massa (Brazil) Williams 18
12. Kimi Raikkonen (Finland) Ferrari 18
13. Romain Grosjean (France) Lotus 8
14. Jean-Eric Vergne (France) Toro Rosso 8
15. Daniil Kvyat (Russia) Toro Rosso 4
16. Jules Bianchi (France) Marussia 2
17. Adrian Sutil (Germany) Sauber 0
18. Marcus Ericsson (Sweden) Caterham 0
19. Esteban Gutierrez (Mexico) Sauber 0
20. Max Chilton (Britain) Marussia 0
21. Kamui Kobayashi (Japan) Caterham 0
22. Pastor Maldonado (Venezuela) Lotus 0
1. Mercedes 258
2. RedBull - Renault 139
3. Ferrari 87
4. Force India - Mercedes 77
5. McLaren 66
6. Williams-Mercedes 58
7. Toro Rosso - Renault 12
8. Lotus - Renault 8
9. Marussia - Ferrari 2
10. Sauber - Ferrari 0
11. Caterham - Renault 0
- Motor Racing
- Sports & Recreation
- Nico Rosberg
- Force India
- Sebastian Vettel
- Felipe Massa
- Lewis Hamilton
- Sergio Perez
- Red Bull