Pepe Oriola and Gabriele Tarquini completed a podium that, for once, did not feature any of the dominant Chevrolet drivers.
While at the front D’Aste was performing his best defensive driving to keep Oriola and Tarquini at bay, Rob Huff, Alain Menu and Yvan Muller were stuck in fifth, sixth and seventh positions behind Mehdi Bennani.
Huff and Menu went past on the 24th and penultimate lap, and it seemed as if Muller might slip back in the title race to his team-mate Huff.
But he too passed Bennani on the final lap to finish sixth, and he now sits level at the top of the standings with Huff.
"I am very surprised at this victory, because at the beginning of the weekend we were really struggling to find the right set up," D'Aste admitted.
"We had meetings all the time to find a solution. And this paid off. In the races my car was really good. I could take a good start and in the first laps I really had to fight hard to keep Oriola behind.
"He was quicker than me in the first part of the race. Then the rear-wheel drive of my car helped me to save the tyres and I was able to create a gap in the final laps."
Race two results:
1. Stefano D'ASTE ITA BMW 320 TC 23:54.717
2. Pepe ORIOLA ESP SEAT Leon WTCC 23:57.279
3. Gabriele TARQUINI ITA SEAT Leon WTCC 23:57.562
4. Robert HUFF GBR Chevrolet Cruze 1.6T 23:58.491
5. Alain MENU CHE Chevrolet Cruze 1.6T 23:58.937
6. Yvan MULLER FRA Chevrolet Cruze 1.6T 23:59.285
7. Mehdi BENNANI MAR BMW 320 TC 23:59.596
8. Aleksei DUDUKALO RUS SEAT Leon WTCC 24:01.891
9. Alex MACDOWALL GBR Chevrolet Cruze 1.6T 24:02.424
10. Tiago MONTEIRO PRT Honda Civic S2000TC 24:05.300
- Gabriele Tarquini
- Mehdi Bennani
- Alain Menu
- Yvan Muller
- Rob Huff