Lampard made three substitutions after an underwhelming first-half display and they changed the game for the Blues, with Barkley – one of those introduced – getting the decisive goal.
Leicester looked the better side in the opening period and appeared to have greater control of proceedings, though their final pass did not match up to promising build-up play.
Chelsea produced a marked improvement in the second half after Lampard tinkered with his team and Barkley ended the deadlock with a smart finish in the 63rd minute, earning his team a place alongside Manchester United and Arsenal in the last four.
Chelsea were guilty of a sloppy start, but Leicester lacked ruthlessness and did not call Willy Caballero into action until the 20th minute when Youri Tielemans saw his 20-yard effort turned wide.
Lampard's men had another couple of escapes soon after, as Harvey Barnes blazed high and wide before Jonny Evans failed to direct a free header on target from a free-kick.
But Leicester had to rely on Kasper Schmeichel to avoid going behind in the 30th minute, the Danish goalkeeper producing a fine reaction save to deny Christian Pulisic.
A seemingly unimpressed Lampard made three alterations at half-time and it led to an improvement – Tammy Abraham finding the net in the 55th minute, only for celebrations to be cut short by an offside flag.
A Ben Chilwell cross hit the crossbar at the other end, but that was a momentary lapse in Chelsea's second-half domination and they deservedly went ahead just past the hour – half-time substitute Barkley expertly turning in Willian's low cross.
The Blues should have finished Leicester off on the break in the 89th minute, but Barkley's initial pass to Ruben Loftus-Cheek was poor and when the ball was returned to him the former Everton midfielder's shot was saved in unorthodox fashion by Schmeichel.
It had no impact on the result, however, as Chelsea head to Wembley.