The remaining five – which included compatriot Rigo Uran, Spaniard Mikel Nieve, Slovenian Primoz Roglic, Irishman Nicolas Roche and Italian Fabio Aru – were not able to match the Columbian’s efforts, which gave Quintana (5:11:17) the first solo win in this year’s Vuelta.
Sunweb’s Roche, along with Jumbo-Visma’s Roglic, EF Education First’s Uran and UAE Team Emirates’ Aru, followed five seconds later.
The last of the breakaway group, Mitchelton-Scott’s Nieve, finished a further three seconds back at the end of the 199.6km stage that started in Benidorm.
The 29-year-old Quintana said it was a special day for him and that he needed this victory to happen.
“It was kind of a different finish, and a very beautiful one. I had never won like that so far in my career but there’s always a first time.”
Earlier, a group of four comprising South Africa’s Willie Smit, Belgium’s Sander Armée and Spain’s Angel Madrazo Ruiz and Jonathan Lastra, formed at the 50km mark.
They led for most of the day, but the gap grew smaller as the peloton reached the last major climb of the stage.
The summit, which came around 170km into the race, took its toll on most of the riders, leaving only the strongest out front.
Roche and Nieve attacked with about 20km to the finish and were later joined by the rest of the top six.
Roche now leads the overall standings by two seconds over Movistar’s Quintana and a further six over Uran.
View the results below.
Stage two results
1. Nairo Quintana (Col) Movistar Team 5:11:17
2. Nicolas Roche (Irl) Team Sunweb +0:00:05
3. Primoz Roglic (Slo) Team Jumbo-Visma
4. Rigoberto Uran (Col) EF Education First
5. Fabio Aru (Ita) UAE Team Emirates
6. Mikel Nieve (Spa) Mitchelton-Scott +0:00:08
7. Sergio Andres Higuita Garcia (Col) Equipo Euskadi +0:00:37
8. Tadej Pogacar (Slo) UAE Team Emirates
9. Alexander Aranburu Deba (Spa) Caja Rural-Seguros RGA
10. Alejandro Valverde (Spa) Movistar Team
33. Louis Meintjes (RSA) Dimension Data +0:01:43
58. Nicholas Dlamini (RSA) Dimension Data
156. Willie Smit (RSA) Katusha-Alpecin +0:17:26
174. Jaco Venter (RSA) Dimension Data +0:20:48
1. Nicolas Roche (Irl) Team Sunweb 5:26:12
2. Nairo Quintana (Col) Movistar Team +0:00:02
3. Rigoberto Uran (Col) EF Education First +0:00:08
4. Mikel Nieve (Spa) Mitchelton-Scott +0:00:22
5. Miguel Angel Lopez (Col) Astana Pro Team +0:00:33
6. Primoz Roglic (Slo) Team Jumbo-Visma +0:00:36
7. Wilco Kelderman (Ned) Team Sunweb +0:00:38
8. Sergio Andres Higuita Garcia (Col) Equipo Euskadi +0:00:40
9. Davide Formolo (Ita) Bora-Hansgrohe +0:00:46
10. Rafal Majka (Pol) Bora-Hansgrohe
44. Louis Meintjes (RSA) Dimension Data +0:02:13
70 Nicholas Dlamini (RSA) Dimension Data +0:04:00
160. Willem Jakobus Smit (RSA) Katusha-Alpecin +0:18:39
174. Jaco Venter (RSA) Dimension Data +0:21:57