Melandri took the holeshot from pole position into the first turn at the start, but ran wide and allowed Rea to move ahead into Turn 2.
Rea immediately established a gap of seven tenths over the Ducati rider, and eased off into the distance, while Melandri settled into a lonely second for much of the race.
The battle for third proved tense in the early laps, and would remain as such until the closing stages, with Milwaukee Aprilia’s Eugene Laverty moving up to the final rostrum spot ahead of Tom Sykes into Turn 8.
Behind, Puccetti’s Toprak Razgatlioglu began to carve his way through to the podium battle, and launched a successful raid on Kawasaki stablemate Sykes at the first turn with nine laps remaining.
Sykes soon came under attack from Chaz Davies, but the Ducati rider crashed trying to pass at Turn 8, while spots of rain began to appear on track.
The rain persisted into the closing stages, but did not intensify enough to warrant a tyre change, and did nothing to upset Rea’s rhythm.
Opening up his lead to nine seconds by this stage, the world champion cruised across the line to secure his 15th win of the season and his ninth in succession.
Melandri was marginally reeled in by the chasing group late on, but held onto second, while Razgatlioglu tallied up his second podium of his rookie WSBK campaign after passing Laverty at Turn 1 with eight laps to go.
Barni Ducati’s Xavi Fores put on a late charge to move up to fourth, and will start from pole in race two as a result, while Laverty found himself shuffled back to fifth at the chequered flag.
Sykes ended up sixth in the end ahead of the Yamaha duo of Alex Lowes and Michael van der Mark, with Loris Baz edging his Althea BMW 0.047s ahead of Honda’s Leon Camier to seal ninth.
WSBK debutant Florian Marino gave Triple M Honda its best result of the year in 11th, with fellow rookies Maximilian Scheib (MV Agusta) and Gabriele Ruiu (Pedercini) the last of the classified runners in 13th and 14th.
Home favourite Leandro Mercado crashed out early on, as did Jake Gagne, while late technical dramas for Lorenzo Savadori ruled him out. Jakub Smrz failed to make the start after encountering a technical issue on his way to the grid.