Haga had lost the front of his Yamaha Italia while holding fourth position early in race one, but showed no lack of faith in his R1 as he charged confidently forwards during the second outing - overtaking Troy Bayliss for the lead on lap 8 of 23.
But Nori held the advantage for just one corner before home hero Carlos Checa dived past them both.
Having fallen within sight of his first WSBK victory in race one, when a 'hero-or-zero' pass on race leader Max Neukirchner ended in disaster for them both, Checa thus looked set to make amends as he edged away from Haga by the halfway stage...
... but the Hannspree Ten Kate Honda rider then raised his hand exiting a right hander, indicating some form of technical problem, which allowed Haga back into a lead the Japanese held right to the chequered flag.
After losing second place to Bayliss, Checa found a 'cure' to what he later confirmed to be an electrical problemsand regained his earlier speed - although third place, and therefore his second WSBK podium, was the most he could achieve in the laps remaining.
Checa would have been hard to beat without his problems, but one man with little sympathy for his plight was Neukirchner. The young German, who had qualified on pole for the first time ever and led all but the final metres of race one, didn't even make the start of race two, after suffering a broken collarbone in the earlier collision.
With nearest rival Fonsi Nieto only managing tenth in race two, Bayliss is now 48 points clear of the Alstare Suzuki rider, while Haga's victory - and first podium of the season - has promoted the 2007 title runner-up to sixth position, albeit a huge 81 points from Bayliss.
Almost five seconds behind Checa at the flag was team-mate Ryuichi Kiyonari, the Japanese enjoying his strongest WSBK ride to date as he passed hard racers Yukio Kagayama, Ruben Xaus and Troy Corser in the closing stages.
Corser's fifth position, combined with third in race one, means the double world champion now sits joint third in the point standings - equal with top rookie Checa and just eight points behind Nieto.
After finishing just outside the points in race one, the injured Max Biaggi took eighth position in race two. The Roman crossed the finish line a fraction behind Sterilgarda Go Eleven team-mate Xaus after a 'spirited' late battle between the 1098 RS08 riders.
Surprise race one winner Lorenzo Lanzi finished race two in twelfth position on his RG Team Ducati, one place ahead of his 2008 factory replacement Michel Fabrizio.
Valencia race two:
3. C. Checa
18. D. Checa
22. Lozano Ortiz