The hosts, who went into the game lying bottom of the Premier League, went 1-0 up in the 22nd minute when Steven Fletcher headed in a cross from skipper Karl Henry.
Cottagers boss Mark Hughes was sent to the stands in the second half after reacting angrily to a booking for Brede Hangeland, but his team equalised with 10 minutes to go through Johnson, who had come on just seconds earlier.
The result meant Wolves moved off the foot of the table to 19th, but they will be cursing their inability to hold out for all three points.
Mick McCarthy’s team were on the ropes in the opening moments as a fierce shot from Carlos Salcido brought a diving save out of Wayne Hennessey.
Moussa Dembele then tried a speculative effort from distance that sailed well over.
Next up was Clint Dempsey, cutting into box after being fed by Steve Sidwell, but the American could not get his shot on target.
Dempsey then missed Fulham’s best chance yet, putting the ball over from the edge of the six-yard box after stretching to meet Salcido’s cross.
It was not until the 21st minute that Wolves made their first real attempt at goal as Adlene Guedioura’s header deflected wide.
Seconds later, though, they had the lead as Fletcher rose to nod in Henry’s delivery.
Wolves appealed for a penalty when Richard Stearman fell in the box under a challenge from Dempsey, but the assistant referee ruled that the defender had been offside.
The hosts continued to press, although both Guedioura and Jamie O’Hara showed a lack of composure in unleashing wild shots that went nowhere near Mark Schwarzer’s goal.
Dempsey struck narrowly wide and moments later the forward teed up Simon Davies, who failed to connect with the ball properly.
In first-half stoppage time O’Hara turned in the area and hit an effort the wrong side of the post.
Wolves had a scare soon after the restart when Hennessey flapped at a cross from Chris Baird, but Henry was there to avert the danger with Dembele lurking.
Two minutes later Wolves were on the attack and Guedioura sent a low drive at Schwarzer, who dived to catch it.
Eidur Gudjohnsen, making his first Fulham start, was allowed to wriggle through, but the Icelander could only scoop his shot over.
Fulham captain Danny Murphy – booed by the home crowd with every touch of the ball due to his comments earlier in the season about Wolves and dangerous tackling – had already been involved in a skirmish with Henry.
It was the Cottagers’ manager who failed to control himself in the 56th minute, though, after Hangeland had been shown a yellow card for a challenge on Fletcher.
Hughes was incensed by the decision and his remonstrations with the officials led to him being sent to the stand by referee Michael Oliver.
Gudjohnsen picked out Dempsey, who miscued his shot, before hooking an effort of his own over the bar after Hennessey had only been able to palm a cross to him.
Gudjohnsen was then substituted for Bobby Zamora, with Gael Kakuta also coming on in place of Murphy.
Kakuta shot wide before Fletcher twice fired in for Wolves, one going off target and Schwarzer saving the other.
That was the Scotland striker’s last contribution as he was replaced by Sylvan Ebanks-Blake, and Hughes made a further change by introducing Johnson for Dempsey in the 79th minute.
Moments after Johnson took to the field, Zamora tussled with Christophe Berra for a ball into the box and it fell to the former Everton man, who dispatched a shot past Hennessey and into the net.
Ebanks-Blake missed with a header five minutes from the end, but it was Fulham who might have snatched victory at the death, Kakuta bringing a save out of Hennessey and then striking wide.