Alastair Seeley overtook fellow Northern Ireland rider Josh Elliott on the final lap to win the British Superstock 1000cc race at Thruxton.
Seeley now trails his compatriot by 17 points at the top of the championship standings with five rounds remaining.
Tyco BMW-mounted Seeley enjoyed an advantage of just 0.18 seconds over the Morello Kawasaki rider at the flag.
"I dropped back to seventh at one stage but I worked my way though and saved myself for the last lap," said Seeley.
"I've been in that situation before so I didn't panic. It's all about tyre life, trying to conserve the tyre and try to find the optimum grip.
"I didn't have the ideal package this weekend but we managed to make it work."
For the Carrickfergus rider, it was his third triumph of the season and his second in succession, having won round the Brands Hatch Indy circuit last time out.
Elliott, who led for much of the event, has 155 points from seven races, with Seeley on 138 and third-placed man Hudson Kennaugh back on 109.
Meanwhile Andy Reid finished in a fine second place in the feature British Supersport race, having taken fifth in the sprint event on his Traction Control Yamaha at the Hampshire circuit.
Carrickfergus rider Glenn Irwin was sixth in the 12-lap sprint but improved to fourth on Sunday to maintain his third position in the overall standings on 203 points.
Profile Triumph's Luke Stapleford made it four wins on the trot by taking the chequered flag in both races, seeing off Reid by 3.7 seconds in the second race.
Second-placed Kyle Ryde was runner-up in the opener and now trails Stapleford by 23 points at the summit of the standings, 273 to 240. Andy Reid lies fifth with 130.
Toomebridge rider Michael Laverty was ninth and sixth in the two British Superbike outings, which were both won by new series leader, Milwaukee Yamaha's Josh Brookes.