Bobby Hassell grabbed a late leveller to end Newcastle United's seven-match winning streak and earn Barnsley a 2-2 Oakwell draw.
Newcastle, backed by a vocal horde for 7,000 Geordies, thought they had won it when Marlon Harewood came off the bench and scored after goals from Kevin Nolan and Emil Hallfredsson.
Newcastle made a flying start, oozing confidence as they set the pace and the fans pumped up the volume to ear-splitting levels after five minutes when they made the early breakthrough.
A long ball from Ryan Taylor was flicked on by Carroll and Kevin Nolan deceived Hassell and as Luke Steele raced off his line, slotted in a low angled shot for his tenth of the season.
Two minutes later Carroll should have put the visitors further in front when he burst on to a Ryan Taylor cross from the right but his header was straight at Steele.
Ryan Taylor crashed in a low free-kick after Steele handled outside his area and Nicky Butt pounced after it was half cleared but his rasping drive was deflected over.
Taylor was a fraction short of claiming Newcastle's second when he intercepted smartly on the halfway line and fired a sizzling effort from 30 yards that was inches high.
Barnsley were out early after a half-time rocket from the unhappy Mark Robins and with their ears ringing the home side pushed forward earning two early corners. After another foray Nathan Doyle fired in a shot but was well wide.
And Barnsley's early pressure told six minutes after the restart when they levelled. Anderson de Silva tore down the right and his cross was deflected to leading scorer Daniel Bogdanovic who missed his header, but Hallfredsson overlapped and smashed in his shot off the underside of the bar.
After 62 minutes a well worked corner with Hallfredsson was crossed in by de Silva and Andy Gray's downward header beat Steve Harper but was cleared off the line by Jose Enrique.
Twelve minutes from the end Harewood restored the lead when he stole in to lob Carroll's flick over Steele.
But three minutes from the end Hassell got the final touch, after Adam Hammill's corner for the leveller.