Barnsley took the lead in the second minute through Michal Helik before goals from Jack Hunt and Tyreeq Bakinson put City ahead after the interval.
In stoppage-time, Barnsley's Michael Sollbauer was fouled and had to receive lengthy treatment before Woodrow was able to convert the spot-kick.
City remains top of the table ahead of Reading on goals scored after the second placed Royals were held to a 0-0 draw at Middlesbrough.
Chris Hughton marked his first game in charge of Nottingham Forest with a late 1-0 win at Blackburn Rovers.
Former Brighton and Hove Albion and Newcastle United boss Hughton, who replaced Sabri Lamouchi after Forest's four-game losing start to the season, saw Joe Lolley's deflected strike seal the points for Forest in the 90th minute.
Wycombe Wanderers scored its first Championship goal in history, but is still looking for a first point in the second tier after Millwall came from behind to win 2-1 at Adams Park.
Scott Kashket put Wycombe ahead early on after Millwall keeper Bartosz Bialkowski miscontrolled in his own six-yard box.
However, a Jed Wallace penalty and a fine Ryan Leonard strike gave Millwall their second win this season.
Huddersfield Town ended Swansea City's unbeaten league run this term as it won on the road for the first time in three months at Liberty Stadium.
Josh Koroma clinched a 2-1 victory with his first goal for the club in the 67th minute after the home side cancelled out Harry Toffolo's opener with an Andre Ayew penalty.
Jordan Hugill scored a stoppage-time penalty as Norwich City came from behind to beat 10-man Rotherham United 2-1.
Luton Town boss Nathan Jones suffered defeat against his former club as Stoke City's Steven Fletcher and Nick Powell scored in a 2-0 win at Kenilworth Road.
Ivan Toney's brace eased Brentford to a 2-0 win over Coventry City, Barry Bannan's 49th-minute penalty gave Sheffield Wednesday a 1-0 victory at Birmingham City and Bournemouth was held to a 0-0 draw by Queens Park Rangers.