Lopez seized control of the Tour on Thursday’s summit-finish and the 25-year-old adds this to the Tour of Colombia he won in impressive fashion in February.
“I’m tired but very happy,” the climb specialist said under a photo of himself on Instagram smiling broadly on his team bus.
The day’s racing was marred by a heavy crash of around 20 riders. The great French hope Romain Bardet appeared to break a collarbone , Simon Geschke and Gari Bravo were all taken to hospital for treatment, while Marc Soler also pulled out.
Lopez went into the seventh and final stage with a slender 14sec overnight lead over Mitchelton-Scott rider Yates, who along with his brother the Vuelta a Espana winner Simon launched a late but eventually doomed attack that gave the Briton a brief glimmer of hope.
Eventually a reduced group of around 10 contenders all finished about 55sec behind the solo winner Bora-Hansgrohe rider Davide Formolo of Italy.
Yates’ runner-up spot follows fast on the heels of his gut-wrenching second place, by a single second to Primo Roglic, at the Tirreno Adriatico two weeks ago.
After Chris Froome fell early in the Tour Sky nominated the 22-year-old Colombian Egan Bernal as leader and the all rounder came third overall.
Top Colombia climber Nairo Quintana of Movistar finished fourth, Canadian all rounder Michael Woods finished sixth whilst defending champion Alejandro Valverde ended 10th.
The stage, a hilly 143km ride that started and ended in Barcelona, culminating in seven laps of the coastal city and its steep climb to Montjuic.
Tour of Catalonia results
7th and final Stage
1. Davide Formolo (ITA/BOR) 3hr 19min 41sec, 2. Enric Mas (ESP/DEC) at 51sec, 3. Maximilian Schachmann (GER/BOR) 53, 4. Dion Smith (NZL/MIT) 55, 5. Alejandro Valverde (ESP/MOV) 55, 6. Egan Bernal (COL/SKY) 55, 7. Adam Yates (GBR/MIT) 55, 8. Nairo Quintana (COL/MOV) 55, 9. Steven Kruijswijk (NED/JUM) 55, 10. Michael Woods (CAN/EF1) 55
1. Miguel Angel Lopez (COL/Astana) 29hr 14min 17sec, 2. Adam Yates (GBR/MIT) at 14sec, 3. Egan Bernal (COL/SKY) 17, 4. Nairo Quintana (COL/MOV) 25, 5. Steven Kruijswijk (NED/JUM) 56, 6. Michael Woods (CAN/EF1) 1:42, 7. Rafal Majka (POL/BOR) 2:27, 8. Guillaume Martin (FRA/WGG) 2:41, 9. Enric Mas (ESP/DEC) 2:49, 10. Alejandro Valverde (ESP/MOV) 3:02