MONTREAL — Formula One rookie Lance Stroll says he will never forget his first Canadian Grand Prix, a race where he earned his first Formula One points.

Stroll finished ninth at his hometown race on Sunday, coming all the way back from 17th in the starting grid at Circuit Gilles Villeneuve. The finish gives the Canadian two points in the drivers' standings.

"My first points," exclaimed an overjoyed Stroll, who moved into 16th in the championship table. "It's really special. I'll never forget it. Finally feels good for sure. I kept working and finally broke the ice.

"I need to thank all the fans here. It was so special seeing all the Canadian flags."

Lewis Hamilton came in first for his third consecutive Canadian Grand Prix victory. His Mercedes teammate Valterri Bottas finished second and Red Bull's Daniel Ricciardo was third.

The 18-year-old Stroll has now finished three of seven races this season. His previous best finish was 11th in Russia.

From 17th at the start of the race, Stroll fought his way up to ninth, then fell back to 17th before grinding his way towards his first-ever top-10 finish.

"I knew we could do it," said Stroll. "We've always had the pace, but some things just weren't going our way. Today, everything went well and I couldn't be happier. The car was great today."

Stroll was aggressive from the opening lap and hardly let up. Starting from the second row from the back, the Williams rookie quickly jumped into 15th when Carlos Sainz and Felipe Massa collided on the opening lap.

Stroll climbed into 13th when points leader Sebastian Vettel was forced to pit early after damaging his front wing.

On lap 15, Stroll blew past Stoffel Vandoorne of McLaren at the hairpin. On the following lap, Toro Rosso's Daniil Kvyat emerged from pit lane just behind Stroll.

The rookie then decided to make a pit stop of his own — his only stop of the race — where he changed from the ultrasoft to the supersoft tires.

The one pit stop strategy worked wonders for Williams.

"Making one stop was the right idea," said Stroll. "I really managed the tires well and kept a good pace throughout. A real team effort today."

The visit to pit lane saw Stroll fall all the way back to 17th. That's when he began his climb towards the leaders.

On lap 40, the 18-year-old cruised past Renault's Jolyon Palmer into 14th place. Three laps later, he overtook Romain Grosjean on the straightaway before the final chicane.

On lap 46, Stroll went down the back straight and comfortably reached the chicane before Vandoorne, jumping into 12th as a result. On the next lap, the Canadian passed Fernando Alonso down the outside.

Penalties to Kevin Magnussen (five-second penalty) and Kvyat (drive-through penalty) allowed Stroll to cruise into 9th, where he would stay for the remaining 15 laps of the race.

"I knew we had the pace to do it, to come back," said Stroll. "It was just about knowing when to overtake. I could have done it a lot earlier sometimes, but it was just a bit risky so I wanted to do it safely. I knew that we were in it until the end. We just made it happen."

Minutes after the completing the race, Stroll emerged from the Williams garage and hugged his father.

"Great race, great pace, and couldn't be happier," said Lawrence Stroll, Lance's dad. "I don't think it could be more appropriate that he scored his first points on his home soil.

"I think he was always very confident. He's had some bad luck. And he's 18 years old. Everyone has to have a little bit of patience. This is just his seventh race."

Notes: The victory was Hamilton's sixth overall in Montreal. … Only 12 points separate Hamilton and Vettel in the drivers' standings. … Red Bull's Max Verstappen was forced to retire on lap 11. …The next race is the Azerbaijan Grand Prix on June 25.