Ferrari's Sebastian Vettel and the Mercedes of Lewis Hamilton completed the podium but the pair didn't have the tyre life or the space on the tight city street circuit to make any serious move on the ailing Ricciardo.
The leading drivers all opted for a one-stop strategy, which delivered a pass-free race that lacked any real pace.
"I think I can show more emotion today than yesterday," Ricciardo said. "Two years in the making - I finally feel like the redemption has arrived. We had problems, we had a lot to deal with during the race. I felt power loss and I thought the race was done. We got home just using six gears. I'm stoked. There were a few doubts that came in mid-race, but we've won Monaco - feels good, feels good."
Vettel conceded he didn't have the package to take it to Ricciardo.
"It was a bit boring, the race," said Vettel. "We had the pace, it was a tricky race. Daniel had the answers at all times. He was a bit stronger, we couldn't follow, and I was going through the tyres a bit quicker. I think he had a problem with his MGU-K, then it picked up towards the end again. At the restart I didn't have much confidence in the tyres, I lost quite a lot. Otherwise it would have been nice to keep the pressure on."
Vettel made a promising start and put some pressure on Ricciardo as they headed for the first corner but the Australian held his position and kept control of the race from that point.
He countered an earlier pit stop from Hamilton's Mercedes but on lap 29 reported a drop in power in his Red Bull Renault. He immediately fell into the clutches of Vettel, who went into full-on attack mode.
Vettel had issues himself with a wearing tyre limiting his ability to really push. He tried without success through the rest of the race.
Hartley also made a decent start but picked up some damage at some point on the opening lap as the cars bunched up on the tight circuit. He damaged part of his front wing and lost some downforce as a result.
Hartley's Toro Rosso team opted to pit him earlier than most – on lap 14 – but he was handed a five-second time penalty for speeding in the lane. It was yet another mistake from the Kiwi in what is becoming a run of missed opportunities for the Le Mans winner.
He ran in 12th for a long time and jumped up a spot when the gearbox on Fernando Alonso's McLaren let go.
Leclerc suffered a failure on his Sauber as he trailed the Kiwi with a handful of laps remaining but couldn't stop and plowed straight into the Toro Rosso.
"A tough old race out there," Hartley said. "I had a good start but didn't manage to get any places on the first lap and I actually had a bit of a battle with Charles and I lost part of my front wing so we had to run the whole race missing quite a lot of downforce.
"I was happy with the job I was doing out there. I was holding ground and I was catching Carlos [Sainz] at the end but I think Charles had a brake failure at the end."
Hartley's Toro Rosso teammate Pierre Gasly made the most of the pace his Honda-powered car on a slower track, finishing an impressive seventh in his second point-scoring finish of the year.