Poleman Chaz Davies held onto the lead into Turn 1 at the start, with Tom Sykes heading Kawasaki stablemate Toprak Razgatlioglu and the Ducati of Michael Ruben Rinaldi.
Rinaldi dispatched his former Superstock rival Razgatlioglu at the Turn 5 hairpin, though race one winner Rea stormed through from ninth to seize third from the pair at the end of lap one.
Davies held a 0.6s advantage over Sykes, who repelled an attack from teammate Rea at Turn 5 on lap three, with this squabble allowing Melandri to close in.
Rea carved up the inside of Sykes at Turn 13 for second, with Melandri following suit at Turn 5 two laps later.
Once clear of his teammate, Rea demolished Davies’ 1.2s lead and made his first attempt at the lead on lap eight at the first corner, but ran wide on exit and let Davies back through.
Rea made a pass stick on lap 10 at the first corner, but Davies mounted a successful counter-assault at Turn 5, while the sister Ducati of Melandri homed in.
Davies lost out to Rea two tours later, however, and soon came under attack from Melandri, who moved up the inside at Turn 1 a lap later.
Both Ducatis ran wide, though, and Yamaha’s van der Mark grabbed swooped through to take second, where he began has charge on Rea’s lead.
Van der Mark got Rea to within 0.6s, but could do nothing to further reduce it, giving Rea a relatively comfortable run to the chequered flag for his sixth straight win and to extend his points lead to 116.
Melandri eased away from Davies in the latter stages to complete the podium, with his teammate – still suffering the after effects of his double left collarbone break – just holding Sykes at bay to seal fourth.
Lorenzo Savadori headed Milwaukee Aprilia teammate Eugene Laverty in sixth, with Rinaldi, Loris Baz (Althea BMW) and Xavi Fores (Althea Ducati) completing the top 10.
Early podium contender Razgatlioglu crashed at Turn 10 on lap 13, joining Jakub Smrz and Roman Ramos on the sidelines.