Everton overturned a 1-0 deficit to claim a slender advantage in their Europa League tie with Dynamo Kyiv.
The visitors went ahead early as Oleh Gusev fired past Tim Howard but the Blues hit back through Steven Naismith.
And a much improved Everton – who dominated proceedings after the interval – added a second from the spot, Romelu Lukaku slotting home from 12 yards.
The result means the Toffees travel to Ukraine for the round of 16 second leg holding a lead – but knowing an away goal for Dynamo gives them an ace in the sleeve.
Illness to John Stones meant Antolin Alcaraz partnering Phil Jagielka in defence, with Luke Garbutt again deputising for the injured Leighton Baines.
But it was the man behind them, Tim Howard, who was called into action first as he reacted quickly to punch away a teasing left-wing cross.
However, on 13 minutes, Dynamo took the lead. Hesitant Everton defending saw a corner conceded, and when Andriy Yarmolenko swung over the set-piece Gusev was there to guide the ball past Howard.
From then on Kyiv set their defence – Miguel Veloso and Serhiy Sydorchuk denying any Blues forward space to receive a pass. Frustration began to creep around Goodison as the hosts failed to muster a response.
A sweeping pass forward from Gareth Barry raised hope as it released Lukaku down the left. But despite shrugging off Danilo Silva, he failed to find either Naismith or Mirallas in the box.
Sydorchuk then tested Howard from distance, earning another corner for his side – but after Jagielka had bravely blocked from Veloso, the ball flew up-field.
Dynamo keeper Olexandr Shovkovskiy raced from his goal but his attempted clearance fell to the feet of Lukaku. Jagielka, having bombed forward, was in space but the Belgian elected to try his luck from 40 yards – only to get it horribly wrong.
Lukaku was much closer with his next effort – a fizzing free-kick that Shovkovskiy tipped onto the bar.
From the resultant corner, Jagielka had a header cleared off the line and Alcaraz had a fiercely hit drive deflected over.
Everton had their tails up – and promptly equalised. Lukaku shrugged off challenge after challenge and fed Naismith, and the Scot’s cool finish left Shovkovskiy with no chance.
Superb defending from Aleksandar Dragovic stopped Lukaku tapping into an unguarded net minutes later after Mirallas had nicked the ball past Shovkovskiy following a fine McCarthy pass, as the Blues finished the half in the ascendancy.
Everton started the second half in much the same vein – and Alcaraz chanced his arm from 30 yards in the opening minutes.
Naisy then glanced a corner wide from Garbutt’s inswinging corner.
The Blues kept the pressure on – Garbutt driving in a free-kick that Shovkovskiy – a little shaky after his first half misjudgement – punched clear.
Now the home support was behind their team but Kyiv were holding firm.
On came Arouna Kone to boost the forward line, with Mirallas making way. And the Ivorian did ever so well to nod a hanging cross on target, only for Shovkovskiy to smother low to his left.
The visitors were, however, keeping Everton honest – Mbokani headed over and Yarmolenko shot similarly wayward.
But back came the Blues, Lukaku firing at Shovkovskiy on 71 minutes.
Leon Osman was soon introduced, with Barkley coming off, in a bid to add a little more guile.
And he was at the heart of the move that won the Toffees a penalty, the ball flicking a Kyiv arm. Up stepped Lukaku to roll the ball straight down the middle and over the feet of Shovkovskiy who had committed to flinging himself to the right.
The goal meant Everton now head to Kyiv with a slender lead - with a job half done.