The Brit, who arrived in Canada with a 14-point lead over Vettel, will now head to the next round in France trailing his Ferrari rival by one point.
Daniel Ricciardo took the chequered flag in fourth ahead of Hamilton, who tried hard to overtake with old-spec engine.
Following the race former triple-time world champion and Mercedes non-executive chairman Niki Lauda reveals that, Hamilton struggled with engine temperature issue, which triggered an early pitstop so the team could make changes to help solve the problem.
Hamilton, fourth at the time, headed into the pit lane on lap 16 of this 70-lap race, but the early change of tyres allowed Ricciardo to usurp the Mercedes car.
“Why did we stop early?” a frustrated Hamilton asked the Mercedes pit wall.
“The stop was brought forward to resolve this PU [power unit] problem,” his engineer Pete Bonnington replied. “It has helped a little bit.”
Mercedes’ Canadian GP weekend was hurt by it being forced to delay the introduction of its new engine because of reliability concerns.
“First of all we could not use our new engine, which is part of it,” he said. “But we have to say that Ferrari as a package is unbelievable.
“The car is fantastic and the engine – and even on fuel consumption they have been going [like] hell all through the race.
“So I think we have to really work hard now. Red Bull was a surprise but in the end they were behind. So that is it.”