A fascinating scrap with end to end action still came down to Kevin Gallenâ€™s penalty.
In truth, a draw would have been a fairer result, but there was little space for forwards with both defences as sharp as razors.
A huge crowd also helped to charge the atmosphere, and it was no surprise both sides looked out on their legs at the final whistle.
Rangers took the game to City from the off, and Mark Bircham went close with a flashing shot which flew wide of the post.
When the home side were awarded their penalty it appeared harsh on defender Matthew Hill.
Gallen chased a header in to the box and the under pressure City defender was deemed to have guided it to safety with his arm.
Although he missed from the spot with his last attempt, Gallen sent Steve Phillips the wrong way for his 12th goal of the season.
On 33 minutes a nicely worked move ended with Richard Langleyâ€™s deft chip forcing Phillips into a finger tip save.
On 51 minutes Tommy Doherty nearly atoned for his earlier yellow card when he launched himself at a cross which took a headed deflection on the way, and brought a flying stop from Chris Day at his near post.
Gallenâ€™s fine run down the right followed by a deep cross left Lee Cook too much to do, but he still got in a glancing header which flew wide.
With the action now end-to-end slick passing through the City midfield allowed top scorer Scott Murray to get a shot away.
Then with time running out Mickey Bell only needed a touch on a Brian Tinnion cross and City would surely have equalised, but the miss from five yards proved costly.
A shattered Rangers side were dependant on the tireless running of Paul Furlong and Gallen, and with little support the later let go a 30-yard effort more in hope than expectation but it still needed two attempts from Phillips to bring it under control.
Although the ref allowed a generous four minutes the Londoners held on to close the gap at the top of the table.