Lampard had put the holders in front in the 35th minute when he fired a rising 20-yard shot into the net and Terry sealed victory 22 minutes from time with a firm header.
After two successive defeats, Carlo Ancelotti's side returned to top form to book a place at Wembley.
Terry was booed by Stoke fans every time he touched the ball in the opening half.
The revelations over Terry's alleged affair with Vanessa Perroncel, the former girlfriend of his one-time team-mate Wayne Bridge, have clearly not been forgotten by opposing fans.
Chelsea's season has been littered with errors from set-pieces and Stoke tested their resolve in fifth minute when Rory Delap sent one of his trademark long throws into the penalty area.
Former Chelsea defender Robert Huth headed the ball goalwards only for Mamady Sidibe to flick the ball over the bar.
Three minutes later Chelsea responded with a shot from Nicolas Anelka which was well saved by Thomas Sorensen.
But Stoke were unlucky not to open the scoring when Sidibe's effort at the far post was blocked by Alex.
And in the 14th minute it required a clearance off the line from John Obi Mikel to prevent Stoke going ahead. Delap's long throw was punched clear by Hilario but only to Dean Whitehead on the edge of the penalty area. The Stoke midfielder's drilled shot was heading for the bottom corner until Mikel's timely intervention.
Chelsea striker Didier Drogba required treatment off the pitch after a collision with Huth but was soon back in action.
Chelsea squandered a great chance in the 29th minute when Whitehead was caught in possession inside the penalty area but Nicolas Anelka fired beyond the far post from six yards.
Stoke were frustrating Chelsea but they also looked dangerous on the break.
In the 31st minute Tuncay Sanli raced into the Chelsea penalty area but a superb tackle from Alex prevented the City midfielder from pulling the trigger.
Chelsea won a succession of corners and one of them paid off in the 35th minute when Lampard fired them in front with the 18th FA Cup goal of his Chelsea career.
Malouda's corner found Terry at the far post and the Chelsea captain laid the ball into the path of Lampard for the England midfielder to send a rising drive into the net for his 16th of the season.
It was also his 146th career goal for the club and pushed him closer to Peter Osgood's tally of 150.
Stoke made an enforced change just before the interval when injured Glenn Whelan was replaced by Danny Pugh.
Drogba almost made it two just seconds before the break but his shot was well saved by Sorensen.
A long throw by Branislav Ivanovic almost brought Chelsea a second in the 48th minute. Stoke failed to clear the throw but Lampard put his volley high over the crossbar from just inside the penalty area.
Sorensen then had to be alert to deal with a Drogba free-kick as Chelsea stepped up the tempo.
Anelka sent a rasping drive beyond Sorensen's left-hand post in the 58th minute and such was their dominance that Stoke boss Tony Pulis opted to make a double substitution on the hour.
Sidibe was replaced by Dave Kitson and Tuncay made way for Liam Lawrence.
Stoke had to thank Andy Wilkinson in the 66th minute when he cleared off the line from Anelka. Drogba's cross found the France striker unmarked at the far post and his header was stopped by Wilkinson with Sorensen struggling.
But two minutes later Chelsea went 2-0 in front through captain Terry. He planted a firm header into the net from a corner by Florent Malouda and then ran to the corner flag pointing at his captain's armband in celebration.
Lampard almost grabbed a second in the 75th minute but his dipping 20-yard effort was well saved by Sorensen.
Stoke almost profited from another Delap throw in the 82nd minute but Abdoulaye Faye put the ball over with Hilario nowhere.
Anelka squandered the chance to get on the scoresheet in the 89th minute when he fired wide after latching on to a pinpoint pass from Lampard.