First Sean Dillon headed into his own net 18 minutes from time before Darren Dods deflected Liam Craig's free-kick past Steve Banks four minutes later.
Prince Buaben's first goal in Scottish football set up a grandstand finish but Saints deservedly held on.
McInnes was forced into six changes as a result of illness and injury, with star midfielder Jody Morris still being sick at 2pm on Tuesday afternoon and Collin Samuel suffering a heavy knock in training on Monday.
A delighted Saints boss said: "You're concerned that you've got that many changes. Three were forced upon us.
"You're worried about that lack of cohesion that's in the team so we just tried to keep it pretty basic just to start the game with.
"I thought our attitude and approach to it was spot on in the early part of the game."
Those early skirmishes saw Saints twice go close through the recalled Kenny Deuchar and Jonatan Johannson, who made a surprise debut after wrapping up the formalities of a deal until January earlier on Tuesday.
But the hosts had to wait until extra-time was looming before ending the stalemate.
"It's great to score two goals from set-pieces; we work hard on them, said McInnes, who then watched his side cling on in the final 10 minutes.
"They pushed us back, like all good sides do.
"Apart from the one time, we managed to withstand it.
"We showed the right qualities in the last 15 minutes or so."
On reaching another Hampden semi, McInnes said: "The chairman likes a cup run and the supporters will enjoy that."
Explaining the signing of former Rangers team-mate Johansson, McInnes said: "We actually got it done yesterday; we're pretty pleased with that.
"Jonatan has been training with us for the last month or so and he's been keeping himself fit for the two international games which were a couple of weeks ago.
"He got his 99th and 100th cap for Finland and scored against Germany.
"We took in both games and he did very well. And obviously, being on our doorstep, the fact that I played with him and he was a friend, I was hoping there was a possibility we'd get him in the door."
United boss Craig Levein had no complaints with the result but revealed striker Danny Cadamarteri was adamant he should have been awarded a penalty while the game was still goalless.
The striker tumbled over under pressure from Saints skipper Kevin Rutkiewicz, who was making his first appearance of the season after injury.
"They said it was an absolute stonewall penalty kick," said Levein
"Strikers don't go down in the box when they're through on goal. He said he couldn't believe it."
Levein also believed goalkeeper Steve Banks was "taken out" for the second goal but added: "I didn't think we did well enough to win the game, in all honesty.
"Last 10 minutes - maybe 15 minutes - we showed a little bit more urgency.
"But you sit here and you take your medicine. I thought St Johnstone caused us problems all night long, putting the ball in the box."
He added: "That's what beat us tonight; we didn't deal with balls in the box."