Johansson was a surprise starter in Tuesday night's 2-1 win over the Terrors after wrapping up the formalities of a deal until January just hours earlier.
The 34-year-old, who was released by Hibernian last month, had been training with Saints in a bid to maintain his fitness for Finland's World Cup qualifiers against Wales and Germany.
But when Johansson marked his 100th cap with a goal against the latter nation two weeks ago, McInnes began to panic.
He said: "When he scored against Germany, I started to fear the worst and I thought that somebody else would come and take him.
"He had a few token offers but nothing concrete."
McInnes opted to offer Johansson a contract because of injuries to fellow forwards Peter MacDonald, Andy Jackson, Steven Milne and Collin Samuel.
"My situation with strikers has kind of deteriorated, with Peter MacDonald not quite ready," McInnes said.
"Jackson's out long term, Milne's out, and with him and Samuel out - and Fil Morais out on Saturday - our attacking options were very limited."
Of Johansson, who showed flashes of the ability on Tuesday night that prompted Charlton to pay £3.25million for him nine years ago, McInnes added: "Credit to him - he's a top professional. There's not a bit of body fat on him.
"He's worked extremely hard to keep himself fit, he's mixed with all of the boys and you ask him to do something and he'll do it.
"He's got a great mentality and I thought he did well for us."
Own goals late on from Sean Dillon and Darren Dods last night ensured Saints reached their fourth major semi-final in four years.
McInnes said: "I said to the players, young and old, 'There's not many opportunities in your career you get to semi-finals and finals, so go and make the most of the opportunity'.
"That'll do us the world of good confidence-wise, beating a top side like United."
Opposite number Craig Levein had no complaints about the result but revealed striker Danny Cadamarteri was adamant he should have had a penalty while the game was still goalless.
Levein also felt goalkeeper Steve Banks was "taken out" in the build-up to Saints' second.
But he added: "It's frustrating that we scored two own goals, that's what's frustrating."
Levein admitted he had gambled by playing defender Andy Webster, who had to be substituted at half-time because he was still feeling the effects of his recent flu bug.
"He's had the flu and he felt washed out," said Levein, whose side pulled a goal back through Prince Buaben.
"He's obviously not fully recovered, so I was taking a little bit of a gamble - I knew that - but I was hoping he would be all right."