Fleetwood Town battled back to earn a penalty shootout but failed to hit the spot as Barnsley booked a place at Wembley.
Without Antoni Sarcevic and Jimmy Ryan Fleetwood looked light in midfield, Barnsley bossing the action.
The Tykes had a nailed on penalty claim turned down when Sam Winnall's run was brought to an abrupt end of Fleetwood skipper Nathan Pond, Eddie Ilderton somehow not pointing to the spot.
And Josh Brownhill very nearly gave them a crucial advantage, his 30 yard drive from the left channel tipped over by Chris Maxwell.
There were more chances after the break, Winnall blasting over from close range having been released by Marley Watkins, Adam Hammill denied when his curling 20 yard effort was pushed around the post.
Fleetwood's walls finally crumbled when Conor Hourihaine forged a path from the left, his shot deflected off Nathan Pond and under Maxwell.
The hosts looked beaten but super subs David Ball and Ash Hunter had other ideas.
A well worked move down the left saw Ball break into the box, Hunter perfectly positioned to level from five yards out.
Nathan Pond might have won it, his header cleared off the line, sub Ashley Fletcher missing a sitter at the other end moments later.
The hosts looked in the box seat when Josh Scowen's penalty was saved.
But Conor McLaughlin and Amari'i Bell were both thwarted by Adam Davies, leaving Hamill to seal the tie, his penalty rattled in off the underside of the bar.