Na trati, ktorá viedla z Circuito de Navarra do Bilbaa a merala 171,4 km, zdolal o tri sekundy španielsku dvojicu Alexander Aranburu (Caja Rural-Seguros RGA) a Fernando Barcelo (Euskadi-Murias). Gilbert dosiahol 76. víťazstvo v profesionálnej kariére.
Etapa mala drsný priebeh, vedúca skupina sa od balíka odtrhla iba 60 km pred cieľovou páskou. Dovtedy sa išlo veľmi rýchlo. Po vytvorení brejku sa ihneď dostali do hry záverečné stúpania, v ktorých sa rozpútal boj o etapové víťazstvo. Rozhodol finálny kopec Alto de Arraiz, na ktorom zaútočil Gilbert a ukázal svojim prenasledovateľom chrbát. V uliciach Bilbaa si už triumf poľahky postrážil.
„Je to niečo výnimočné, že som vyhral tu, v Baskicku. Bola to ťažká etapa, využil som šancu, ktorá sa mi naskytla. Musel som tuho bojovať, aby som sa dostal do úniku. Snažil som sa pretekať chytro, veľmi mi pomohol Tim Declercq, zaslúži si toto víťazstvo rovnako ako ja,“ povedal pre Eurosport 37-ročný Gilbert po svojom jubilejnom desiatom triumfe na Grand Tour.
Favoriti na titul sa vzájomne kontrolovali a zbytočne nemrhali energiou pred piatkovou náročnou horskou previerkou. V červenom drese pre lídra priebežnej klasifikácie zostal Slovinec Primož Roglič (Jumbo-Visma) s náskokom 1:52 min. pred Španielom Alejandrom Valverdem (Movistar).
Výsledky 12. etapy (Circuito de Navarra – Bilbao, 171,4 km):
1. Philippe Gilbert (Belg./Deceuninck-QuickStep) 3:48:18 h., 2. Alexander Aranburu Deba (Šp./Caja Rural-Seguros RGA), 3. Fernando Barcelo Aragon (Šp./Euskadi Basque Country-Murias) obaja +3 s, 4. Jose Rojas (Šp./Movistar) +22, 5. Nikias Arndt (Nem./Sunweb) +26, 6. Tosh Van Der Sande (Belg./Lotto Soudal), 7. Cyril Barthe (Fr./Euskadi Basque Country-Murias), 8. Manuele Boaro (Tal./Astana Pro Team), 9. Tim Declercq (Belg./Deceuninck-QuickStep) všetci +29, 10. Valerio Conti (Tal./UAE Team Emirates) +31
Poradie po 12. etape: 1. Primož Roglič (Slovin./Jumbo-Visma) 44:52:08 h, 2. Alejandro Valverde (Šp./Movistar) +1:52 min., 3. Miguel Angel Lopez (Kol./Astana Pro Team) +2:11, 4. Nairo Quintana (Kol./Movistar) +3:00, 5. Tadej Pogačar (Slovin./UAE Team Emirates) +3:05, 6. Carl Fredrik Hagen (Nór./Lotto Soudal) +4:59, 7. Rafal Majka (Poľ./Bora-Hansgrohe) +5:42, 8. Nicolas Edet (Fr./Cofidis Solutions Credits) +5:49, 9. Dylan Teuns (Belg./Bahrain-Merida) +6:07, 10. Wilco Kelderman (Hol./Sunweb) +6:25