The 20-year-old Keita, who had added more bite to the Lazio attack after replacing Miroslav Klose, scored in the 77th minute when he raced from the halfway line before firing across into the bottom left corner to leave Lazio with real hope of ending an eight-year absence from Europe’s premier competition.
The second leg will be in Germany next week with the losing side dropping into the Europa League.
Leverkusen, with one Bundesliga game already in their legs, had more of a spring in their step to begin with, but Lazio – whose Serie A campaign commences at the weekend – soon responded and produced the first chance of the match when Lucas Biglia’s shot was deflected over.
Karim Bellarabi went a touch closer at the other end before some brave defending from Maurício scuppered Son Heung-Min’s hopes of opening the scoring. The frenetic pace continued with Lars Bender going the closest yet with a 30-metre effort rattling the upright.
Before the midfielder’s hands could drop from his shocked head, Miroslav Klose was hitting the post at the other end, having rounded Bernd Leno only to find the angle just too tight to squeeze the ball in.
Hakan Çalhanoğlu mustered the first shot on target of the night after an hour’s play, but while his direct free-kick found its way through the Lazio wall, it did not beat Etrit Berisha’s fists.
At the other end, the lively Keita wasted another Lazio opportunity before fellow half-time substitute Admir Mehmedi flashed an attempt centimetres wide of the far post. Hakan thought he had made the breakthrough with 20 minutes remaining, yet his effort clipped Stefan Kiessling’s calf on its way in with the Leverkusen forward in an offside position.
There was no let-up with both teams chasing a winner, and Lazio found it with Keita bursting through before slotting his low shot in off the inside of the far post, giving the Biancocelesti a slender advantage to take with them to Germany.