Match ends, Barnsley 3, Colchester United 2.
Barnsley moved up to 11th in League One with a thrilling victory over Colchester United at Oakwell.
San Winnall's low shot from a tight angle put Barnsley ahead, before Sanchez Watt scrambled in an equaliser.
The hosts scored their second as Conor Hourihane netted from the spot after Sean Clohessy fouled Devante Cole.
Hourihane then turned provider for Peter Ramage to head past Sam Walker, with Freddie Sears' finish from inside the box proving to be a consolation.
Sears had the first chance of the game within two minutes, but scuffed his shot wide after being set up by Gavin Massey.
Winnall's ninth goal of the season and eighth in as many matches put the home side ahead, before Watt ensured the teams were level at the 15-minute mark.
Ramage's header was disallowed for offside to deny the hosts the lead again, while Sears forced a good save from Ross Turnbull in the Barnsley goal.
Martin Cranie's through ball sent Winnall clear but his shot sailed over the bar and the teams went in level at half-time.
After falling behind to Hourihane's penalty, the visitors went close through Alex Gilbey and Sears within three minutes of each other.
Ramage's goal was quickly replied to by a 12th of the season for Sears and, despite late pressure, Colchester could not find a third equaliser.
- 16RamageBooked at 49mins
- 9WinnallSubstituted forBreeat 90+3'minutes
- 10HemmingsSubstituted forJenningsat 84'minutes
- 7Sanchez WattSubstituted forRoofeat 80'minutes
- 38FoxSubstituted forSzmodicsat 85'minutes
- 21MasseySubstituted forHealeyat 72'minutes
- Richard Clark
- Shots on Target
Second Half ends, Barnsley 3, Colchester United 2.
Attempt saved. Kemar Roofe (Colchester United) header from the centre of the box is saved in the centre of the goal.
Substitution, Barnsley. James Bree replaces Sam Winnall.
Attempt saved. Dale Jennings (Barnsley) right footed shot from outside the box is saved in the top centre of the goal.
Attempt saved. Freddie Sears (Colchester United) right footed shot from outside the box is saved in the top centre of the goal.
Foul by Devante Cole (Barnsley).
Alex Gilbey (Colchester United) wins a free kick in the attacking half.
Joe Dudgeon (Barnsley) wins a free kick on the right wing.
Foul by Sammie Szmodics (Colchester United).
Foul by Dale Jennings (Barnsley).
Sean Clohessy (Colchester United) wins a free kick in the attacking half.
Substitution, Colchester United. Sammie Szmodics replaces David Fox.
Substitution, Barnsley. Dale Jennings replaces Kane Hemmings.
Foul by James Bailey (Barnsley).
George Moncur (Colchester United) wins a free kick in the defensive half.
Luke Berry (Barnsley) wins a free kick on the left wing.
Foul by Rhys Healey (Colchester United).
Substitution, Colchester United. Kemar Roofe replaces Sanchez Watt.
Lewin Nyatanga (Barnsley) wins a free kick in the defensive half.