Przedostatni etap tegorocznej Vuelty rozgrywał się w Andorze i był bardzo krótki, zaledwie 97-killometrowy, ale bardzo intensywny. Kolarze pokonywali aż sześć podjazdów, w tym finałowy, na Coll de la Gallina. Tam właśnie rozstrzygnął się wyścig. Atakujący wcześniej uciekinierzy, w tym Rafał Majka (Bora-hansgrohe) i Michał Kwiatkowski (Team Sky), zostali doścignięci na czwartym z kolei podjeździe.
Do mety pozostało nieco ponad 30 kilometrów i już teraz rozpoczęły się ataki faworytów – odjechali Miguel Angel Lopez (Astana) i Nairo Quintana (Movistar), a potem w pogoń za nimi ruszyli Simon Yates (Mitchelton-Scott) i Enric Mas (Quick-Step Floors).
Jeszcze przed Coll de la Gallina Quintana został, by pomóc słabnącemu Alejandro Valverde, a na podjeździe Mas i Lopez zgubili Yatesa. Krótki podjazd wykorzystali do walki o zwycięstwo etapowe, które odniósł Mas, na finiszu wyprzedzając Lopeza. Yates dojechał do mety z niewielką stratą i obronił prowadzenie w klasyfikacji generalnej.
Mas, dzięki przewadze na mecie awansował na drugie miejsce, a Lopez na trzecie, spychając z podium Valverde i Stevena Kruijswijka (LottoNL-Jumbo).
Wyniki 20. etapu:
Klasyfikacja generalna po 20. etapie: