Ducati rider Bautista powered past reigning champion Toprak Razgatlioglu (Pata Yamaha) on the run to the line to snatch his fourth win of the season and another maximum haul of 25 points at round three of the series.
The former MotoGP rider recovered from a poor start after running wide into the first corner to reel in race leaders Razgatlioglu and Rea, who swapped places countless times throughout, continuously passing each other on the brakes at the end of the long start/finish straight into T1.
Once Bautista found his way past Andrea Locatelli (Pata Yamaha) for third, he set off in pursuit of the leaders and eventually closed the gap with six laps to go, slotting into second place when Rea made a mistake into T1 after attempting to pass Razgatlioglu around the outside.
The error effectively cost Rea any prospects of the win, with the Kawasaki rider dropping back. The Northern Ireland man, who opted for the harder SC0 rear Pirelli, was unable to force his way back into contention and had to settle for 16 points in third.
Razgatlioglu appeared to be on course for his first win of the season, but with two laps to go, Bautista was close enough to threaten the 25-year-old without being able to get his nose ahead.
On the final lap, it seemed as though Razgatlioglu had the victory in the bag, but Bautista was able to outrun the Yamaha on the dash to the line to seal his 20th WSBK win by 0.126s. Rea was 4.7s behind on his Kawasaki.
Bautista is now 27 points ahead of Rea, with Razgatlioglu 23 points further adrift in third.
Locatelli was over 12s further behind in fourth, with Xavi Vierge edging out his Honda team-mate Iker Lecuona for fifth.
Alex Lowes (Kawasaki Racing) and Scott Redding (BMW Motorrad) were the top eight.
Eugene Laverty earned a point in 15th on the Bonovo Action BMW.