Romelu Lukaku has scored twice as Everton came from 2-0 down to beat Barnsley in extra time to make the third round of the League Cup.
The visitors created the first chance of the game as they broke quickly following a Barnsley corner, but Kevin Mirallas had a close-range shot blocked by Adam Davies.
The Belgian international had another chance minutes later, but his low drive went straight at the keeper, before Barnsley took a surprise lead through Sam Winnall's smart finish from the edge of the box.
The Yorkshire-based side doubled their lead minutes later as Marc Roberts's cross was headed in by the unmarked Marley Watkins, much to the dismay of Everton boss Roberto Martinez.
The Toffees pushed hard to get a goal back, but Davies made back-to-back saves from Romelu Lukaku and Aiden McGeady, before Mirallas found the net after the break.
The Belgian striker smashed the ball into the back of the net from close range after a cross went over the head of Lukaku.
This gave Everton confidence and they piled forward, with Davies forced to keep out Gerard Deulofeu's low shot, while Ross Barkley sliced the rebound wide.
An equaliser seemed to be on the cards, and minute later they found it as Steven Naismith rifled home Deulofeu's cross.
However, Barnsley regained the lead straight away as Reece Wabara set up Daniel Crowley, and he crisply found the bottom corner.
Everton almost hit back straight away though, and Alfie Mason was forced back to hack Lukaku's effort off the line, but the Belgian got his goal 12 minutes from time as he tapped in Deulofeu's cross at the back post to set up a grandstand finale.
The Premier League side pushed for a winner and twice went close as Barkley shot inches wide of the post, before the midfielder blazed over from close range.
Despite late drama the game went to extra time, and Deulofeu created his third goal of the night as he crossed low in the box, and the ball went in off Roberts.
Barnsley struggled to match the pace of Everton in extra time, but attacked again in the second period and went close to equalising through Conor Hourihane, who hit the bar with a bending shot from 30 yards.
Lukaku killed the game five minutes from the end though, with a low finish from inside the box.