Wayne McIntosh sealed victory for 10-man Rose, lifting them back to the top of the Super League, with former top Bo’ness losing to Kelty.
Bonnyrigg had made a positive start in Fife but it was Hill O’ Beath who opened the scoring in the 16th minute through an unchallenged header from Lewis McKenzie from just eight yards out.
Bonnyrigg battled to get the elusive equaliser and were given a 34th-minute chance via a penalty award when Kieran McGachie was brought down in the penalty area.
However, the resultant spot kick saw Dean Hoskins fire wide, leaving the Rose 1-0 down at the break.
Into the second half just seven minutes and the home keeper denied Dean Hoskins the equaliser with a brilliant save as the Rose looked for a way back into the game.
But just five minutes later it was 1-1. Following a scramble in the home penalty area, Lewis Turner hit the deserved equaliser to pull the Rose level.
It was a superb goal in the 65th minute by Adam Nelson that finally put Bonnyrigg ahead for the first time in the game.
But the lead only lasted two minutes as keeper Andrews was caught out in two minds and Shaun Leishman took advantage to hit home the equaliser at 2-2.
Ten minutes from the end and a second yellow card saw Kerr Young sent off, leaving Bonnyrigg with 10 men and looking to hold out for a draw .
But that’s when Wayne McIntosh grabbed the ultimate winner with his superb header for his own 22nd goal of the season and top again of the Super League Bonnyrigg’s 80th goal of the season.
One Rose worry on an otherwise great day was Jonathan Brown being taken off near the end with an arm injury.
Back on top of the Super League, this Saturday (kick-off 2.30pm) Bonnyrigg Rose are at New Dundas Park to entertain St Andrews United.
Revenge will no doubt be on the minds of the home side, as the Fifers beat the Rose 2-0 at St Andrews in the very first game of this season.