Substitute Allahyar Sayyadmanesh scored six minutes from time to inflict a first defeat on the Foxes in the competition. They remain top of Group G thanks to their head-to-head record against Braga and will finish first if they win at home to AEK Athens in their final group game.
However, a cause for concern for boss Brendan Rodgers will be the injury that forced off Caglar Soyuncu just 16 minutes into his return, following a six-week absence with a groin problem.
Rodgers made nine changes to his team, with James Justin and Dennis Praet the only survivors from the Premier League defeat to Fulham on Monday. The likes of Jonny Evans, Youri Tielemans, Jamie Vardy and Kasper Schmeichel were all left at home and rested.
Leicester, perhaps predictably then, looked a little disjointed and Danny Ward, making only his second start of the season in goal, was called into action early on.
Zorya created an overload on the right, allowing Vladyslav Kochergin to cut inside and shoot from the edge of the penalty area, with Ward needing to get down low to palm away the ball.
The Foxes were dealt a blow after 16 minutes when Soyuncu suffered an injury and had to be replaced.
The Turkish defender came across to the right to deal with a through ball and immediately pulled up, kicking the ball out to receive attention.
He signalled to the bench - his hip area appearing to be the problem - and hobbled off, with Wesley Fofana coming on in his place.
Leicester were lacking as an attacking force, only offering wayward efforts from Justin and Cengiz Under as a threat inside the opening half an hour.
However, Under should have then put the visitors ahead. A neat one-two between Harvey Barnes and Kelechi Iheanacho saw the Turkey international played in, but he slipped his shot wide when one-on-one with the goalkeeper.
Ward was called into telling action again just before the break, diving at full stretch to push away Andrejs Ciganiks' swinging 25-yard strike.
There were chances either side of half-time for Barnes, Under and substitute Luke Thomas, but again all of them failed to trouble the home goalkeeper.
Leicester were almost made to pay for their profligacy after 52 minutes when Vladlen Yurchenko sent a header crashing against the crossbar. Zorya enjoyed a good spell of pressure but the Foxes survived.
Rodgers' side had their best chance to win the game with 10 minutes remaining. Iheanacho did well to win the ball back on the edge of the area and forced Nikola Vasilj to make a parrying save.
He pushed the ball into the path of James Maddison who, from an acute angle, turned the rebound back towards goal, but Vasilj was there again to make a brilliant recovery save.
It proved a huge moment as four minutes later Zorya went ahead. The goal came against the run of play, with Sayyadmanesh sliding in at the far post to convert Vladyslav Kabayev's pin-point low cross from close range.
Under almost rescued a point for Leicester in injury time, but Vasilj flung himself to his right to claw away his 25-yard strike.
This weekend get a £10 free bet with Betfair, when you bet £10 on a Same Game Multi on the Premier League. Terms: Min £10 Same Game Multi bet on any EPL match this Fri - Sun. Free bet valid for 72 hours, awarded at bet settlement. Excludes cashed out bets. T&Cs apply.
Register for free to continue reading
Registration is a free and easy way to support our truly independent journalism
By registering, you will also enjoy limited access to Premium articles, exclusive newsletters, commenting, and virtual events with our leading journalists
Already have an account? sign in
Join our new commenting forum
Join thought-provoking conversations, follow other Independent readers and see their replies