O'Halloran's 75th minute effort was too little too late as Rovers fell to a 2-1 defeat to Leyton Orient at Brisbane Road, with the O's goals coming from Charlie MacDonald and Martin Rowlands, the latter also missing a penalty.
Second-placed Doncaster failed to take advantage as they sunk to a shock 2-1 home defeat against Walsall. Andy Butler put the Saddlers in front with just two minutes on the clock and despite Billy Paynter's quick equaliser, Walsall still won it when Febien Brandy fired home nine minutes from time.
And third-placed Swindon were left embarrassed by a 1-1 home draw with bottom club Hartlepool. Simon Ferry gave Swindon a 15th minute lead but Andy Monkhouse's 74th minute equaliser means Hartlepool have now gone three games without defeat.
Bournemouth were the ones to take advantage as they moved to within one point of an automatic promotion place by heaping more misery on south coast rivals Portsmouth. Second half goals from Lewis Grabban and Marc Pugh secured a 2-0 win for the Cherries and made it a ninth straight defeat for Pompey.
Sheffield United also closed in the leaders with a 2-1 win at Shrewsbury, while Yeovil beat play-off rivals Coventry 1-0 at the Ricoh Arena with Paddy Madden scoring the only goal of the game in first half injury time.
But Brentford's play-off hopes were hit by a 2-2 home draw with lowly Bury. After sacking Paul Dickov in midweek and taking one point from a possible 27, Oldham finally got back to winning ways with a 3-1 victory over MK Dons under caretaker-boss Tony Philliskirk.
Carlisle edged past Stevenage 2-1 at Brunton Park after the visitors had keeper Steve Arnold sent off with just 12 minutes gone.
Scunthorpe hit back to beat Crawley 2-1 at Glanford Park. Matthew Sparrow put the visitors in front after 48 but goals from Jimmy Ryan and Niall Canavan earned the points.
Luke Murphy's penalty was cancelled out by John Cofie as Notts County came back to earn a 1-1 home draw with Crewe, while Freddie Sears struck the only goal for Colchester against Preston, who had Bailey Wright sent off late on.