Fulham went 4-0 up after 36 minutes of the reverse fixture at Ashton Gate in October and they made another fast start against the same opposition on home soil, McCormack netting an exquisite lob from a tight angle for his 21st goal of the season.
City boss Lee Johnson introduced Peter Odemwingie at half-time following his loan move from Stoke on Friday and the Nigeria international came close to a debut goal, but Ryan Fredericks made an excellent block to preserve Fulham’s 1-0 advantage.
But the visitors avoided a third successive league defeat in spectacular fashion as Pack equalised and O’Donnell made a stunning late save to keep City on level terms before Tomlin won it with a superb set-piece in added time.
Fulham manager Slavisa Jokanovic:
“We started the game very well and scored a good goal. But we didn’t control the last 30 minutes in the second-half. We got confused and started making mistakes.
“Our supporters are unhappy. They don’t deserve this at this moment at the level we are now. We are in a relegation battle and our situation is really clear. We have a war in front of us and we have to be ready for this situation. It’s not acceptable.
“I can say sorry to the fans as they push us and try and help us. Now it’s our turn to be obligated to do something different in our next game. I don’t want to think about relegation. It’s in our hands still so we must be brave to resolve this situation.”
Bristol City manager Lee Johnson:
“For Lee to get it up and over like he did, it always had a chance. It was a very big feeling when that nestled in the bottom corner. After training sessions he always has the ball out. The keepers stay out with him. Practise makes perfect. He can bend it like Beckham. He can’t run so he has to!
“That’s our fourth win in five away games. Sometimes we are better suited playing away. At home there’s been a lot of pressure on our players. It’s important we keep striving to go in one direction.
“We had a punch in the gut last game when we conceded in the last few minutes. This time we’ve won with the boldness in our decisions in the second half. I’m delighted for the players.”