Bradford City were the only Yorkshire team to escape defeat in League One.
The Bantams were leading 2-1 at Port Vsle, only for O’Connor to net a late penalty for a share of the spoils.
James Hanson put City 1-0 up on 41 minites, only for Campion to level. Morais restored bradford’s advantage on 65 minutes, but the visitors could not hold out.
Barnsley, Sheffield United and Doncaster Rovers all lost 2-0.
The Tykes were beaten at Swindon, who moved back top of League One.
Raphael Rossi Branco netted, and only Ross Turnbull prevented it from being 2-0 when he saved Andy Williams’s penalty.
But the Reds goalkeeper was at fault from Ben Gladwin’s shot.
Sheffield United were beaten by two late goals at Gillingham.
Jermaine McGlashan broke the deadlock on 86 minutes before Cody McDonald pounced in stoppage time.
And it was the same score at the Keepmoat, as Walsall beat Doncaster.
Jordan Cook opened the scoring for the Saddlers, before Jordy Hiwula secured victory.
In League Two, York City are in the relegation zone after losing 2-0 at home to Dagenham & Redbridge.
Veteran striker Jamie Cureton, 39, netted both goals to leave York still searching for their first win in 2015.