Tarran Mackenzie won his first race of the season on Saturday at Silverstone, with Jason O'Halloran just a tenth of a second behind.
Danny Buchan, Josh Brookes and O'Halloran made up the front three of the grid at the lights.
Kyle Ryde at the double at Silverstone
At the jump, Andrew Irwin replaced Brookes as the PBM Ducati drider dropped back down the pack.
Glenn Irwin then came from behind to move into the lead, with his brother Andrew leading the chase, and Kyle Ryde moved into fourth with what was the fastest lap of the race so far, before Mackenzie displaced him.
Glenn Irwin struggled to break free of Andrew with the gap at less than a tenth of a second, until Andrew mistimed breaking on a corner and had to drop down to eighth as he recovered.
Mackenzie then moved into the lead midway through the race to set himself up for a potential victory, with Irwin slipping down into third and then fourth place as Ryde continued his climb.
Ryde held onto second but was unable to force his way past Mackenzie. O'Halloran took the last place on the podium.
'Superstar' Kyle Ryde wins race two at Silverstone
Brands Hatch GP
Salute the champion: Josh Brookes wins second BSB title