Walka o triumf etapowy rozegrał się na zboczach słynnego Lagos de Covadonga i faworyci nie zamierzali darować uciekinierom zwycięstwa i skasowali ucieczkę na 8 kilometrów przed szczytem. Ivan Garcia Cortina (Bahrain-Merida) był ostatnim kolarzem z dwunastoosbowej grupy, który uciekał przed peletonem.
Pierwszy do walki ruszył Miguel Angel Lopez (Astana) i po jego ataku uformowała się czołówka z Pinot, Yatesem, Alejandro Valverde i Nairo Quintaną (Movistar), Stevenem Kruijswijkiem (LottoNL-Jumbo), Enrikiem Masem (Quick-Step Floors) i Hiszpanem w składzie. Kilka skoków nie było skutecznych, ale na 6 kilometrów przed metą niezdecydowanie rywali wykorzystał Pinot, który miał nieco większą stratę w generalce.
Francuz zyskał kilkanaście sekund na odcinku podjazdów i krótkich zjazdów. Za nim skakali Yates, Lopez i Quintana, ale na chwile jedynie zgubili Valverde i Krujswijka. Pinot utrzymywał przewagę i na kilometr przed metą mógł być prawie pewien zwycięstwa. Linię mety minął 28 sekund przed Lopezem, który w końcówce ruszył po bonifikatę, i Yatesem, który bez problemu utrzymał prowadzenie w wyścigu, dorzucając Valverde sześć sekund. Na 16. miejscu, ze stratą czterech minut, do mety dojechał Rafał Majka (Bora-hansgrohe).
Bolesny upadek na etapie zaliczył Michał Kwiatkowski (Team Sky). Polak upadł na zjeździe z Mirador del Fito i długo leżał na asfalcie, ale ostatecznie wsiadł na rower i kontynuował jazdę. Na metę dotarł ze stratą 23 minut do zwycięzcy.
Wyniki 15. etapu:
1 Thibaut Pinot (Fra) Groupama-FDJ 5:01:49
2 Miguel Angel Lopez (Col) Astana Pro Team 0:00:28
3 Simon Yates (GBr) Mitchelton-Scott 0:00:30
4 Alejandro Valverde (Spa) Movistar Team 0:00:32
5 Steven Kruijswijk (Ned) LottoNL-Jumbo
6 Enric Mas (Spa) Quick-Step Floors 0:00:34
7 Nairo Quintana (Col) Movistar Team
8 Rigoberto Uran (Col) EF Education First-Drapac p/b Cannondale 0:01:25
9 Emanuel Buchmann (Ger) Bora-Hansgrohe 0:01:33
10 Ion Izagirre (Spa) Bahrain-Merida 0:01:49
Klasyfikacja generalna po 15. etapie:
1 Simon Yates (GBr) Mitchelton-Scott 64:13:33
2 Alejandro Valverde (Spa) Movistar Team 0:00:26
3 Nairo Quintana (Col) Movistar Team 0:00:33
4 Miguel Angel Lopez (Col) Astana Pro Team 0:00:43
5 Steven Kruijswijk (Ned) LottoNL-Jumbo 0:01:29
6 Enric Mas (Spa) Quick-Step Floors 0:01:55
7 Thibaut Pinot (Fra) Groupama-FDJ 0:02:10
8 Rigoberto Uran (Col) EF Education First-Drapac p/b Cannondale 0:02:27
9 Ion Izagirre (Spa) Bahrain-Merida 0:03:03
10 Emanuel Buchmann (Ger) Bora-Hansgrohe 0:03:15