Lopez accelerated away to claim victory inside the final kilometre, while Froome and Nibali were unable to bring him back.
While the opportunity for the stage win evaporated as Lopez celebrated his success, however, Froome did win the sprint for second place and extra bonus seconds some 14 seconds later.
Wilco Kelderman (Team Sunweb) bridged across to Froome and Nibali to also gain time on the day, but Orica-Scott and BMC Racing both saw their GC hopes take a huge blow.
Chaves finished 17th, two minutes behind Lopez, while Tejay van Garderen lost 3’26” on the day.
Nicolas Roche finished 4’17” down on the race winner, while Adam Yates’ GC hopes are over – the Brit also dropping out of the top ten after finishing 34th at 9’13”.
Froome was the big winner, meanwhile – the Team Sky man now boasts a commanding lead overall.
Vuelta a Espana 2017: stage 11 – result
1) Miguel Angel Lopez (COL) – Astana – 5.05.09hrs
2) Chris Froome (GBR) – Team Sky +14”
3) Vincenzo Nibali (ITA) – Bahrain-Merida – ST
4) Wilco Kelderman (NED) – Team Sunweb
5) Romain Bardet (FRA) – Ag2r-La Mondiale +31”
6) Alberto Contador (ESP) – Trek-Segafredo – ST
7) Ilnur Zakarin (RUS) – Katusha-Alpecin
8) Mikel Nieve (ESP) – Team Sky
9) Darwin Atapuma (COL) – UAE Team Emirates +1.02
10) David de la Cruz (ESP) – QuickStep Floors +1.14
General classification
1) Chris Froome (GBR) – Team Sky – 45.18.01hrs
2) Vincenzo Nibali (ITA) – Astana +1.19
3) Johan Esteban Chaves (COL) – Orica-Scott +2.33
4) David de la Cruz (ESP) – QuickStep Floors +2.36
5) Wilco Kelderman (NED) – Team Sunweb +2.37
6) Ilnur Zakarin (RUS) – Katusha-Alpecin +2.38
7) Fabio Aru (ITA) – Astana +2.57
8) Michael Woods (CAN) – Cannondale-Drapac +3.01
9) Alberto Contador (ESP) – Trek-Segafredo +3.55
10) Miguel Angel Lopez (ESP) – Astana +4.11