Kasper Schmeichel denied Vladyslav Kabayev but the hosts eventually brushed off the visitors from Ukraine without the injured Jamie Vardy.
They travel to AEK Athens next week, after facing Arsenal on Sunday, having made their European return following a three-year absence.
Brendan Rodgers’ side also earned a morale-boosting win after damaging home defeats to West Ham and Aston Villa.
But the Foxes – also without the injured Caglar Soyuncu and Wilfred Ndidi – were still forced to sweat in the first half.
Zorya, who have qualified for Europe in the last seven seasons, made a solid start and Vladlen Yurchenko shot over.
Leicester were initially sloppy and almost paid the price against limited Zorya in the 22nd minute.
Maksym Lunov slid the ball across the box for the onrushing Kabayev but, with the forward stretching, Schmeichel saved well at the far post.
The hosts had created little but opened the scoring with their first chance of the game after 29 minutes.
Barnes, their brightest spark, cut in from the left and his curling shot came back off the post.
It fell for Iheanacho but, crowded out by defenders, all he could do was shield the ball for Maddison to arrive and tap in.
Leicester’s confidence grew and Mykyta Shevchenko saved Barnes’ low effort soon after but they survived a scare after Schmeichel’s mistake four minutes before the break.
The goalkeeper rattled a routine clearance into Yurchenko and the ball broke to Dmytro Ivanisenia but the midfielder lobbed his shot wide of an empty net.
Yet the Foxes ended any lingering fears by doubling their lead in first-half stoppage time.
Christian Fuchs’ fine pass found Iheanacho and he held the ball up for Barnes to race though and produce an impudent finish past Shevchenko.
A second allowed Leicester to relax and they pressed for another with Wesley Fofana flashing a header wide 10 minutes after the break.
Zorya’s roughhouse tactics did little to upset the Foxes and, after Maddison drilled over, Iheanacho got his goal after 67 minutes.
It was a gift from Zorya as Ivanisenia’s loose pass went straight to the striker who turned Lovro Cvek to find the bottom corner.
He then hit the side netting with 20 minutes left as Leicester cruised to victory.