Barnsley 3 Crystal Palace 1
The Tykes trailed to an early Shefki Kuqi striker but hit back through Jamal Campbell-Ryce and an own goal from Lee Hills before Malta striker Michael Mifsud added the third.
An impressive save from keeper Heinz Muller after two minutes denied Palace the lead when the German turned away a free-kick from 25 yards from Anthony Stokes.
But after eight minutes the visitors - still glowing from an impressive win at Swansea on Saturday - swept into the lead.
Barnsley skipper Stephen Foster - back after suspension - slipped as Palace tore forward and Kuqi took full advantage rifling in his shot from ten yards.
Victor Moses had the home side in trouble when his weaving run took him within range of Muller's goal but his shot was blocked.
And as Palace threatened to cash in with a second goal, Muller denied them with another fine save, palming away Kuqi's diving header after a Nick Carle free-kick.
Palace keeper Julian Speroni held onto a long-range strike from Mifsud before they produced an unlike equaliser.
It came out of the blue after 23 minutes thanks to an astute ball from Jon Macken's that sent Campbell-Ryce racing in behind the defence and he hit a cool shot past the advancing Speroni.
It gave the home side a head of steam and they could have forced their way in front before the break.
Twice on-loan winger Adam Hammill sent in quality corners and each time found Brazilian midfielder Anderson de Silva but his headers were straight at Speroni.
But soon after restart Barnsley went in front thanks to the hapless Hills. Rob Kozluk made a searing break down the left and drilled in a low cross that Hammill looked certain to finish off but Hills attempted to hook the ball away and could only force it into his own net.
Palace could have been level after an eye-catching move split Barnsley open in the 71st minute but Bobby Hassell got in the way of Carle's goalbound header and diverted it over the top.
And two minutes later Barnsley added the third when a long ball was flicked on by Macken and Mifsud made a blistering run and fired in from 15 yards.