Petterson made one astonishing save as Paul Trollope met a cross barely six yards out and defenders threw themselves in the way of a series of shots to concede half a dozen late corners. Their combined efforts seemed to have earned a draw on a ground where Portsmouth had lost only twice in 17 previous visits.
In the final minute, however, Karlheinz Riedle was fouled - or slipped according to Portsmouth's manager, Alan Ball - and got up to head on Andy Melville's free-kick for Collins to nod jubilantly in.
"Our commitment deserved better than that," Ball said. "They put us under pressure with an aerial bombardment but didn't open us up until the last knockings."
It was a bad night all round for his club, who will be fined after arriving late, having been stuck in the chaotic west London traffic. Their captain, Adrian Whitbread, was still adjusting his kit as he trotted forward for the toss and his team-mates spent the first half getting their bearings before recovering well enough to frustrate the home side and their supporters.
After three years of almost constant success - the last two on the back of Mohamed Al Fayed's money - expectations are high in these parts and patience was wearing thin after a series of missed chances.
Injuries to Paul Peschisolido and Geoff Horsfield plus a suspension for Barry Hayles have left Fulham down to their last two strikers, each newly arrived from Merseyside. Danny Cadamarteri, who scored on his debut at Stockport on Saturday, and Riedle were both prominent as Fulham dominated from the off. Riedle headed across the face of goal then set up two chances for his new partner; Cadamarteri side-footed the first rather carelessly wide, but was unlucky to see the second, a low drive, fizz past the far post. Before that, Lee Clark, man-marked in midfield by Andy Awford, had forced Matt Robinson to clear his shot off the line following one of a clutch of Fulham corners.
Portsmouth finally got far enough forward to win two corners of their own just before half-time and should have scored from the second of them. The veteran Steve Claridge, apparently taken by surprise as it reached him at the near post, headed wide. Fitzroy Simpson and Lee Bradbury were unable to convert equally good chances after which the visitors were content to settle for remaining unbeaten at Craven Cottage for 18 years.
Despite Cadamarteri hitting the bar, Fulham's storm appeared to have blown itself out until brewing again dramatically in the last few minutes. Their reward was to move back up to fourth place in the table.
Fulham (3-5-2): Taylor; Coleman, Melville, Symons; Uhlenbeek, Clark, Hayward, Trollope, Brevett (Collins, 54); Cadamarteri, Riedle. Substitutes not used: Hahnemann (gk), Morgan, Selley, Davis.
Portsmouth (5-3-2): Petterson; Crowe, Waterman, Whitbread, Vlachos, Robinson; Panopoulos, Awford, Simpson; Bradbury, Claridge (Lovell, 80). Substitutes not used: Flahavan (gk), Pamarat, Whittingham, Phillips.
Referee: P Dowd (Stoke).Reuse content