The diminutive Scotsman sat behind Francis for the majority of the race but made his move on the last lap with a dive under the inside of the championship leader at the fast left hander of Knickerbrook. Mackenzie was able to cut the championship lead of Francis down to just eleven points with the victory.
RS Racing's Andy Reid took third place in the race and the 125 victory on his return to British Championship racing after a serious leg break two years ago. 125 Championship leader Tom Carne took fourth place ahead of the third of the Moto3 machines to cross the line, South African Jordan Weaving. Leaving the Cheshire circuit, Carne now holds a 34 point championship advantage after his sixth podium of the year.
Banks Racing's Ed Rendell ended in sixth place, claiming the last podium spot for the 125 category, ahead of Brands Hatch round winner Joe Irving and Peter Sutherland.
Rounding out the top ten was e3 Motorsport's Arnie Shelton and RCD Honda's Callum Bey.