A fighting second half after a poor opening period brought Bonnyrigg back from the brink and secured a Scottish Junior Cup fourth-round replay.
Rose went behind from a soft penalty. Nicky Prentice went down easily and Gary Kelly sent the ball behind Rose debutant, on-loan Hearts goalkeeper Kelby Mason. Worse was to follow in 26 minutes when Paul McBride was left unmarked and he made it 2-0. Ruarhi Donaldson almost pulled one back when he hit the bar.
At the interval, manager Robbie Horn asked his men to show the character he knew they possessed and to dig deep.
They responded brilliantly with a powerful performance and it was non-stop attack. Rangers were not too particular how they kept the Rose out and several yellow cards came their way.
Horn introduced Jon Brown and Wayne McIntosh and the move paid off when Brown pulled one back with a deflected shot in the 67th minute.
Correy Pearson received a second yellow and Rangers were down to ten men.
Rose missed several chances and, just as Rangers thought they could hold on, Dean Hoskins scored with four minutes remaining. Rangers tried to respond but keeper Mason saved the day when he stopped a Paul McBride shot low down.
Kilsyth: Carlin, Waters, K McBride, Doyle, McGhee, McCroary, F Kelly, G Kelly, Pearson, P McBride, Prentice. Subs: O’Neil, Livingston, Davidson, Hogg, Duke.
Bonnyrigg Rose: mason, Horne, Hoskins, Young, Moyes, Stewart, Gray, Kidd, McGachie, Nelson, Donaldson. Subs: Brown, Archibald, McIntosh, Jamieson, Andrews.