Cardiff's lead at the top of the Championship was cut to five points by Hull City while Australian defender Shane Lowry was sent off in Millwall's big loss.
Cardiff City was beaten 2-0 by Brighton & Hove Albion in just its second home defeat of the season.
Brighton went ahead two minutes before half-time.
The Bluebirds enjoyed greater possession and hit the woodwork four times but it was the Seagulls who breached their opponent's defence when Ulloa pounced in injury time.
Brighton remains seventh.
Hull claimed its third successive victory with a 2-0 success over Blackburn Rovers to cut the gap at the top.
The Tigers went ahead in the 52nd minute when
Hull doubled the lead (67) when Quinn raced down the left-hand side before checking back to send in a right-footed cross which found Ahmed Elmohamady and he volleyed home.
Watford maintained its challenge with a 2-0 win at Ipswich Town to remain third.
The Hornets made an impressive start which was capped by
Watford doubled the lead (72) when Nathaniel Chalobah rounded the goalkeeper and poked the ball home.
Charlton Athletic put a dent in Leicester City's challenge when they won 2-1 at the Foxes.
Charlton took a 19th-minute lead,
Leicester took until the 69th minute to draw level,
The Addicks regained the lead (78) with a great finish from
The Terriers went ahead in the 10th minute when
Majewski levelled in the 21st minute and three minutes later Forest were ahead,
Majewski scored his second of the night (37) with a low shot before he completed his hat-trick (43) when he drove home a fierce 30-yard effort which gave
Wolverhampton Wanderers dropped into the relegation zone after a 2-1 defeat at Barnsley.
Wolves started well and took a seventh-minute lead when Bjorn Sigurdarson beat the defence for pace and went round goalkeeper
But Barnsley levelled in the 49th minute when
The Tykes' dominance was then rewarded when
Peterborough United climbed off the bottom with a 5-1 win at 10-man Millwall.
Peterborough went ahead at Millwall when
However, the Lions levelled just six minutes later,
The Posh regained the lead (32) when a sharp finish from
Peterborough got a fourth when
Ten minutes later it got worse for Millwall as
Derby County and Bolton Wanderers drew 1-1.
Birmingham City and Sheffield Wednesday shared a goalless draw as did Burnley and Middlesbrough.
Mat Ryan kept another clean sheet as Club Brugge moved a point behind leader Standard Liege in the Belgian Jupiler Pro League after a 3-0 home win against KV Mechelen.