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."
RED BULL REALISTS
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."
McLaren's Jenson Button, winner in Canada in 2011, benefited from the last lap chaos to take fourth followed by Nico Hulkenberg in a Force India and Ferrari's Fernando Alonso.
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.