Matteo Trentin wins the final sprint in Madrid
Matteo Trentin win his fourth stage as Froome is crowned the 2017 Vuelta a Espana winner
Vincenzo Nibali was second and Ilnur Zakarin third on the final general classification.
Chris Froome joined a handful of professional riders who have won two Grand Tours in one season.
The KOM classification was won by Davide Villella (Cannondale-Drapac) and Miguel Angel Lopez (Astana) won the best young rider of La Vuelta 2017.
The relativley flat stage from was 70 kms to the Spanish capital where the peloton faced a final nine laps of a 5.6 km loop.
With 48 kms to go, Contador was allowed to solo off the front, much to the congratulations and cheers of the fans in Madrid in his final professional race.
Matteo Trentin took the intermediate sprint points looking to secure the Green points jersey, however Froome decided to contest it.
A battle ensued as Quick-Step Floors and Team Sky prepared for battle in the final sprint.
Quick-Step Floors did a superb job and delivered Matteo Trentin to line who powered to line ahead of Lorrenzo Manzin of FDJ and Søren Kragh Andersen from Team Sunweb.
Behind, Froome crossed the line in 11th place denying Trentin the points classification Green jersey, having won four stages in this year's Vuelta.
Trek-Segafredo and Alberto Contador took another lap, inhonour of Contador's final race.
Froome said "I've been trying for years and I've been second three times, so to win the Vuelta now is incredible".
Chris Froome became the first British winner of the Vuelta a Espana.
2017 Vuelta a Espana Stage 21 Top Ten
1 Matteo Trentin (Ita) Quick-Step Floors 3:06:25
2 Lorrenzo Manzin (Fra) FDJ
3 Søren Kragh Andersen (Den) Team Sunweb
4 Tom Van Asbroeck (Bel) Cannondale-Drapac
5 Ivan Garcia Cortina (Spa) Bahrain-Merida
6 Magnus Cort (Den) Orica-Scott
7 Kenneth Van Bilsen (Bel) Cofidis, Solutions Credits
8 Sacha Modolo (Ita) UAE Team Emirates
9 Michael Schwarzmann (Ger) Bora-Hansgrohe
10 Daniel Hoelgaard (Nor) FDJ
11 Christopher Froome (GBr) Team Sky
2017 Vuelta a Espana Final GC
1 Christopher Froome (GBr) Team Sky 82:30:02
2 Vincenzo Nibali (Ita) Bahrain-Merida 0:02:15
3 Ilnur Zakarin (Rus) Katusha-Alpecin 0:02:51
4 Wilco Kelderman (Ned) Team Sunweb 0:03:15
5 Alberto Contador Velasco (Spa) Trek-Segafredo 0:03:18
6 Wout Poels (Ned) Team Sky 0:06:59
7 Michael Woods (Can) Cannondale-Drapac 0:08:27
8 Miguel Angel Lopez (Col) Astana Pro Team 0:09:13
9 Steven Kruijswijk (Ned) Team LottoNL-Jumbo 0:11:18
10 Tejay van Garderen (USA) BMC Racing Team 0:15:50