Alan Thompson and Chris Sutton saw red as Rangers narrowed the gap to one point at the top of the SPL by winning a stormy Old Firm derby.
Spanish striker Nacho Novo drove Rangers ahead from the penalty spot after being felled by Joos Valgaeren.
Croatia striker Dado Prso's header from a Fernando Ricksen cross made it 2-0.
Celtic were reduced to 10 men when Thompson head-butted Peter Lovenkrands and Sutton followed after the break for two handballs in quick succession.
Rangers had ended a seven-match losing streak in Old Firm games by knocking Celtic out of the CIS Insurance Cup at Ibrox 10 days previously.
But Celtic manager Martin O'Neill could this time include Sutton and was able to recall fit-again Stilian Petrov, although Didier Agathe was out injured.
The visitors started brightly and Henri Camara hit the crossbar in the sixth minute from point-blank range, but a foul was given against John Hartson in the build up.
Rangers went ahead after 15 minutes, when Joos Valgaeren tripped Novo in the box.
The Spaniard, able to start after having a red card received last weekend downgraded to a yellow, slotted the spot-kick into the corner of the net.
Rangers substitute Bob Malcolm, dropped to allow Alex Rae to return to midfield, was led up the tunnel by police for what appeared to be viewed as an obscene gesture in celebration.
Celtic dominated possession and Stanislav Varga headed a couple of feet wide from a corner.
Dado Prso scored Rangers' second goal
But the reigning champions fell further behind after 36 minutes, Prso heading home from 12 yards following a free-kick from Ricksen.
Thompson was sent off after squaring up to Lovenkrands, who over-reacted to the contact and was subsequently booked, the Rangers forward having fouled Jackie McNamara.
Camara, already on a yellow card, was lucky not to follow after lashing out at Vignal and was replaced with Stephen Pearson at half-time.
Celtic goalkeeper Magnus Hedman prevented a third goal, twice turning close-range efforts from Prso for a corner.
Sutton was sent off for a second bookable offence after twice deliberately handling the ball in one movement within the Rangers penalty box in the 56th minute.
Nine-man Celtic still managed to threaten, Stilian Petrov firing straight at Stefan Klos from 14 yards.
Hamed Namouchi missed a glorious chance to make it 3-0, driving the ball wide from 12 yards.
Rangers: Klos, Khizanishvili (Malcolm 71), Andrews, Boumsong, Vignal (Ball 59), Namouchi, Ricksen, Alex Rae, Lovenkrands (Arveladze 45), Prso, Novo.
Subs Not Used: Graeme Smith, Thompson, Hutton, MacKenzie.
Booked: Lovenkrands, Alex Rae, Khizanishvili.
Goals: Novo 15 pen, Prso 36.
Celtic: Hedman, McNamara, Balde, Varga, Valgaeren, Petrov (McGeady 79), Sutton, Lennon, Thompson, Hartson, Camara (Pearson 45).
Subs Not Used: Marshall, Juninho Paulista, Lambert, Wallace, Lawson.
Sent Off: Thompson (38), Sutton (56).
Booked: Camara, Sutton, Lennon, McNamara.
Ref: K Clark