Movistar rider Quintana, 26, finished in the bunch in Sunday's final stage to maintain his lead of one minute 23 seconds over Team Sky's Froome.
"It is a dream come true. I have a huge amount of respect for Chris Froome and he for me," Quintana told Eurosport.
Orica-BikeExchange's Magnus Cort Nielsen won the 104.8km stage in a sprint finish in Madrid.
The win is Movistar rider Quintana's second in a Grand Tour after his 2014 Giro d'Italia triumph.
Esteban Chavez, riding for Orica-BikeExchange, finished third, 4:08 behind compatriot Quintana.