Mick McCarthy's long unbeaten run as Cardiff boss was finally ended as Watford kept the pressure on in the automatic promotion race with a dramatic stoppage-time 2-1 win to move second in the Sky Bet Championship.

Brentford's 1-0 victory at Blackburn on Friday night had put them into the top two, only to be overtaken by Swansea who won 1-0 at Luton in Saturday's 12.15pm kick-off thanks to a goal from Corkman Conor Hourihane.

The Hornets, though, ended Saturday afternoon back in second place on goal difference following Adam Masina's strike deep into stoppage time.

Leaders Norwich head to strugglers Sheffield Wednesday on Sunday looking to restore their advantage back to 10 points.

Earlier at Kenilworth Road, Hourihane's goal after only three minutes proved enough for Swansea to record a third victory from four matches.

Luton saw defender Dan Potts carried off on a stretcher in a neck brace shortly before half-time after colliding with Hourihane, and although the hosts created chances, they could not find an equaliser.

Cardiff, chasing a play-off place themselves under new boss McCarthy, had gone in front against Watford through an own goal from Francisco Sierralta in the 14th minute.

The visitors, though, hit straight back to equalise through Nathaniel Chalobah just a minute later.

It looked as if both sides would have to settle for a draw, but in the fourth minute of added time, Masina's free-kick flew past Cardiff keeper Dillon Phillips to snatch a dramatic victory.

Watford are three points clear of fourth-placed Brentford, but have played a match more than both promotion rivals below them.

Callum O'Dowda made the perfect return from injury as he rose from the bench to score in Bristol City's 3-0 at struggling Birmingham.

The home side had hit the woodwork twice through another Ireland international Scott Hogan before Kasey Palmer fired Bristol City ahead in the 36th minute.

Antoine Semenyo added a somewhat fortunate second goal just after the hour when a clearance from Blues keeper Neil Etheridge bounced off the striker and into the net. O'Dowda scored a third with 14 minutes left.

Barnsley maintained their impressive form with a 3-2 win at Shane Long's Bournemouth.

The Tykes - who had won seven straight games before the midweek draw against Derby - went ahead in the 16th minute through Michal Helik from a corner.

Arnaut Danjuma hailed Bournemouth level in the 22nd minute, before Dominic Solanke had them in front during first-half stoppage time.

Barnsley, though, equalised on the hour through Dominik Frieser.

With nine minutes left, Carlton Morris' looping header from a free-kick secured victory which leaves Valerien Ismael's side five points clear of seventh-placed Bournemouth.

Reading hit back to draw 1-1 at Nottingham Forest and keep themselves in the play-off shake-up.

Forest took the lead four minutes into the second half when Royals defender Tom Holmes turned a cross from Sammy Ameobi into his own net.

Andy Yiadom hit the post before Reading's pressure finally told when Yakou Meite fired in an equaliser with just nine minutes left.

Bottom club Wycombe beat Preston 1-0 to move within two points of Sheffield Wednesday.

Centre-back Ryan Tafazolli's header in the 27th minute proved enough to end a four-game losing streak and make it a happy reunion for Daryl Horgan against his former club.

Millwall won 1-0 at Derby through a header from centre-back Shaun Hutchinson at a corner just before half-time.

Middlesbrough beat Stoke 3-0. Defender Grant Hall gave Boro the lead following a corner in the 21st minute, with Paddy McNair adding another shortly before half-time and Nathaniel Mendez-Laing scored a late third.

Juninho Bacuna's strike 10 minutes into the second half gave Huddersfield a 1-0 win at QPR.