Oleg Gusev gave the visitors the perfect start at Goodison Park, firing Andriy Yarmolenko’s corner past Tim Howard in the 14th minute for a vital away goal.
However, Everton responded well after a poor start and equalised through Steven Naismith just before the interval.
Roberto Martinez’s side pushed on for a winner in the second half but could not find a way past Oleksandr Shovkovskiy as he saved well from Lukaku and substitute Arouna Kone.
But Everton finally got their well-deserved breakthrough through Lukaku’s penalty with just eight minutes remaining to take a narrow advantage into next week’s second leg.
Martinez’s side have won just one of their last 12 Premier League games and they made a nervy start to the night with the visitors looking the more likely in the opening stages.
They got their reward in the 14th minute when Gusev got in front of his marker at the near post from Yarmolenko’s corner and he was able to fire past home ‘keeper Howard.
Martinez’s side were rocking and Yarmolenko was causing plenty of problems down the right, producing another inviting cross which was cleared only as far as Serhiy Sydorchuk, who fired over from distance.
The Goodison Park faithful did not have much to cheer about until the 30th minute when Lukaku used his power to surge down the left, but his cut-back was well intercepted by Miguel Veloso.
Minutes later, Sydorchuk let fly from distance but his shot was saved by Howard. Everton cleared quickly from the resulting corner and visiting ‘keeper Oleksandr Shovkovskiy came out of his area to clear, although his poor attempt could only find Lukaku, who fired over from long range.
The hosts were back on level terms in the 39th minute when Lukaku used his strength to hold the ball up, before laying it into the path of Naismith, who curled his shot beyond the onrushing goalkeeper and into the far corner.
It could have got even better for Everton just before the break as Kevin Mirallas rounded the committed ‘keeper but, after being taken wide of the goal, he could not pick out Lukaku in the penalty area.
Everton kept up the pressure on the visitors after the break with Antolin Alcaraz’s long-range effort and Naismith’s header testing Shovkoskiy.
He was called into action again minutes later when Luke Garbutt whipped in a testing free-kick, but the 40-year-old ‘keeper was up to the task again, punching the ball clear.
Everton were getting closer and closer to a second goal but Dynamo Kiev were still posing their own threat with Dieumerci Mbokani heading into the side-netting.
Everton threw on Kone in the 64th minute and the change nearly paid instant dividends as the striker got on the end of James McCarthy’s cross, but Shovkoskiy produced another smart save.
Time was starting to run out for the hosts to grab a winner but they were still pressing forward at every opportunity with Lukaku the next player to test the visiting goalkeeper.
But they finally got their breakthrough when Danilo Da Silva was adjudged to have controlled Seamus Coleman’s cross with his hand.
Lukaku stepped up and rolled the ball down the middle to score his 16th goal of the season and hand his side the advantage ahead of next week’s return in Kiev.