Dutch cyclist Vos, who already has over 180 victories over the course of her career, outsprinted Movistar's Mavi Garcia and Soraya Paladin (Ale Cipoollini) on the sprint into Scarborough and then along North Bay
The CCC-Liv rider won by seven seconds, leading second-placed Garcia, and Paladin finished in third both in the stage and the race.
Garcia won the climber's journey, and it was the Movistar rider who launched the initial attack before being dragged back by Vos and Paladin.
Blazin’ Saddles: The biggest disappointments and must-do-betters of 2021
Briton and Yorkshirewoman Lizzie Deignan attacked at the start of the stage but was not able to finish in the top three.
Fourth place eventually taken by Christine Majerus for Boels Dolmans, with the best sprinter classification along with it.
Speaking after the race, Vos said: “I was nervous coming into the final because I didn’t know what power I had left in my legs after such a hard stage but to finish it off was incredible.
"I’m really happy to win here and the crowds in the last few days have been fantastic. Like us, the spectators have braved some bad weather over the last two days but they have always cheered us on. It’s been a very good race.”
Deignan congratulated Vos and praised the organisers of the race, saying: “Marianne is a phenomenal rider and thoroughly deserves this win because she rode it very smartly, so congratulations to her.
"This has been another fantastic race and the whole women’s peloton is incredibly grateful for the support we have received from the organisers.
"This is a top-class race and I’m looking forward to returning in September for the World Championships.”
1 Marianne Vos (Ned) CCC-Liv 7:34:27
2 Margarita Victo Garcia Cañellas (Spa) Movistar Team Women 0:00:07
3 Soraya Paladin (Ita) Ale Cipollini 0:00:09
4 Christine Majerus (Lux) Boels Dolmans Cyclingteam 0:01:28
5 Amanda Spratt (Aus) Mitchelton-Scott Women 0:01:35
5 key stages of the 2022 Giro – perfect for Bernal to defend title?
'My time has come' - Valverde confirms retirement after 2022 season