After starting from reverse-grid pole Lopez took command from the beginning, pulling out a gap of almost two seconds over second-place man Tiago Monteiro on the opening lap alone.
As the race approached the midway stage though that lead had been trimmed. More ominously, Muller had also moved from 10th to third.
The Frenchman was already sixth after the opening lap, but his charge was made all the easier when Gabriele Tarquini and Michel Nykjaer touched, allowing Muller to simply slip by.
He began hounding Monteiro, who by this time was within 1.2 seconds of Lopez, but his race was undone by a rare mistake on lap five.
Muller looked down the inside down the back straight but got slightly loose, touched dirt and then outbraked himself and nudged into the back of Monteiro's Honda. The latter dropped to ninth as a result.
Muller was given a drive-through, and with his two closest rivals now handicapped, Wiechers BMW driver Lopez was afforded four seconds of breathing space he would preserve to the finish.
Tarquini was the main beneficiary of the contact up ahead, moving into second.
Pepe Oriola - second in the opening contest - meanwhile put the shine on a fantastic weekend by finishing third.
Michel Nykjaer beat Norbert Michelisz to fourth, with the latter having to defend heavily on the final lap to deny Monteiro a fighting top-five finish.
James Nash was a relatively solitary seventh, but as was the case in race one, there were wild fights throughout the pack.
James Thompson had held eighth heading into the final laps, but faded with gremlins and eventually retired one from the end.
His fall back through the field bunched a chasing pack that grew to include Hugo Valente, Tom Coronel, Darryl O'Young, Alex MacDowall and Stefano D'Aste.
O'Young looked to have seized the initiative with an excellent pass on Thompson, only to be tagged into a spin by Valente, whose eighth place may therefore be taken away.
Coronel, himself involved in an earlier clash with Marc Basseng, and D'Aste rounded out the top 10 on the road.
Tom Chilton lost ground after early contact and could only finish 12th, one spot ahead of RML team-mate Muller.
Results - 11 laps:Pos Driver Team/Car Time/Gap 1. Jose Maria Lopez Wiechers BMW 20m28.525s 2. Gabriele Tarquini Honda +3.619s 3. Pepe Oriola Tuenti Chevrolet +3.989s 4. Michel Nykjaer Nika Chevrolet +4.945s 5. Norbert Michelisz Zengo Honda +7.135s 6. Tiago Monteiro Honda +7.517s 7. James Nash Bamboo Chevrolet +13.866s 8. Hugo Valente Campos SEAT +16.422s 9. Tom Coronel ROAL BMW +16.767s 10. Stefano D'Aste PB BMW +18.320s 11. Alex MacDowall Bamboo Chevrolet +19.073s 12. Tom Chilton RML Chevrolet +19.634s 13. Yvan Muller RML Chevrolet +20.232s 14. Fernando Monje Campos SEAT +23.092s 15. Franz Engstler Engstler BMW +23.515s 16. Mikhail Kozlovskiy Lada +26.544s 17. Rene Munnich Munnich SEAT +27.050s 18. Darryl O'Young ROAL BMW +36.055s 19. Charles Ng Engstler BMW +36.476s Retirements: James Thompson Lada 10 laps Mehdi Bennani Proteam BMW 8 laps Marc Basseng Munnich SEAT 7 laps Rob Huff Munnich SEAT 4 laps
Volvo gave the World Touring Car Championship a major boost when it announced it would enter the series, but its ambitions don't stop there. JACK COZENS examines its programme, the S60 and what its arrival means for the WTCC
The 2012 World Touring Car champion says he never had the money to race cars. Yet 2015 is his 11th season in the WTCC. He talks STUART CODLING through his journey from motorsport fan to paid professional - for little more than £100,000