Roman Bezjak's goal on the stroke of half-time handed the Bulgarian outfit a slender advantage to take into next week's return leg in Razgrad.
Lazio should have pulled level early in the second half but Felipe Anderson's spot-kick was kept out by Ludogorets goalkeeper Vladislav Stoyanov.
Ludogorets captain Stevoslav Dyakov had a bad night as he saw his early penalty saved by Lazio goalkeeper Etrit Berisha before being sent off in the 55th minute having picked up his second yellow card.
Lazio's numerical advantage lasted 18 minutes as Luis Cavanda joined Dyakov in the tunnel after seeing a straight red for a late challenge on Iordan Minev.
The visitors enjoyed a strong start and were awarded a penalty in the eighth minute after Lorik Cana's handball in the box.
Berisha stood still and saved Dyakov's Panenka-style chip spot-kick.
Lazio struggled to put a good move together and it was the Bulgarians that came closest to scoring in the 34th minute when Marcelinho's bullet strike hit the crossbar with Berisha already beaten.
Lazio first tested Stoyanov in the 37th minute but Lucas Biglia's central effort did not trouble the Ludogorets goalkeeper.
Lazio finally conceded seconds before half-time.
Berisha could do nothing to clear Bezjak's venomous 30-yard curled effort that silenced the crowd at the Stadio Olimpico.
The home side failed to take advantage five minutes into the second half when the official pointed to the spot after Minev fouled Felipe Anderson in the area.
Stoyanov guessed correctly and dived to his right, saving Felipe Anderson's penalty.
In the 85th minute, substitute Antonio Candreva tested Stoyanov but the stopper pulled off another save and Lazio, who were missing a number of first-team stars, are left with all to do in the second leg in Sofia.