The Team UAE Emirates rider jumped away from the main pack inside the final kilometre and never looked back, beating France’s Pierre Latour by one second and Spain’s Alejandro Valverde by three.
Belgian Greg van Avermaet hung on for dear life on the 2km climb at an average gradient of 6.9 percent to retain the overall leader’s yellow jersey.
While Australian Richie Porte, Italian Vincenzo Nibali and Britain’s Geraint Thomas all crossed the line three seconds off the pace after the 181km ride from Brest, defending champion Chris Froome was five seconds further back.
Last year’s runner-up Rigoberto Uran was 11 seconds behind Martin but it was worse for Frenchman Romain Bardet, who ended 31 seconds off the pace after having to swap bikes with a team mate following a mechanical issue just before the last climb.
Dutchman Tom Dumoulin, the 2017 Giro d’Italia champion, suffered a puncture with five kilometres to go and ended the day 53 seconds behind the winner. (Reporting by Julien Pretot Editing by Toby Davis)