The FDJ rider finished the 241km race, which started in Bergamo, in a time of 5:53:22. He is fresh from his victory at the Milano-Torino last week.
EF Education First-Drapac p/b Cannondale’s Rigoberto Uran took fourth place, with Lotto Soudal’s Tim Wellens completing the top five.
Pinot said that he was happy to win. “I’m in one of the best conditions of my career, it’s great.”
He added that, among the Monuments, Il Lombardia was the nicest in his mind.
“I’ve always wanted to win it. I’m in the best shape of my career but to win ahead of Nibali is something very special.”
Willie Smit, of Katusha Alpecin, was the first and only South African to finish after placing 90th.
View more results below.
1. Thibaut Pinot (Fra) FDJ 5:53:22
2. Vincenzo Nibali (Ita) Bahrain-Merida 0:00:32
3. Dylan Teuns (Bel) BMC Racing Team 0:00:43
4. Rigoberto Uran (Col) EF Education First-Drapac p/b Cannondale
5. Tim Wellens (Bel) Lotto Soudal
6. Ion Izagirre (Spa) Bahrain-Merida
7. Rafal Majka (Pol) Bora-Hansgrohe
8. Domenico Pozzovivo (Ita) Bahrain-Merida
9. Daniel Martin (Irl) UAE Team Emirates 0:00:48
10. George Bennett (NZl) LottoNL-Jumbo 0:01:22
11. Alejandro Valverde (Spa) Movistar Team 0:01:31
12. Egan Arley Bernal Gomez (Col) Team Sky
13. Michael Woods (Can) Team EF Education First – Drapac P/B Cannondale
14. Sébastien Reichenbach (Swi) Groupama – FDJ
15. Mikel Nieve Iturralde (Spa) Mitchelton – Scott
16. Dario Cataldo (Ita) Astana Pro Team +0:01:57
17. Primož Roglic (Slo) Team Lotto Nl – Jumbo +0:03:04
18. Patrick Konrad (Aut) Bora – Hansgrohe +0:03:33
19. Mattia Cattaneo (Ita) Androni Giocattoli – Sidermec
20. Jakob Fuglsang (Den) Astana Pro Team