Match ends, Fulham 1, Oldham Athletic 2.
League Two Oldham Athletic produced a stunning comeback to shock top-flight Fulham at Craven Cottage, leaving defeated boss Claudio Ranieri to say the players in his much-changed side proved why they are not first choice.
Callum Lang headed an 88th-minute winner to send Oldham into the FA Cup fourth round, moments after Latics goalkeeper Daniel Iversen had saved a penalty from Fulham substitute Aleksandar Mitrovic.
Sam Surridge started the comeback with 14 minutes to go as he levelled from the spot following Denis Odoi's opener for the hosts.
Fulham boss Ranieri made six changes to the side beaten 4-1 by Arsenal in the Premier League five days earlier, but was "disappointed" his players did not seize their opportunity.
"I gave a chance to them to show if I am right or wrong, to see if I am right to choose other players - I am right," said Ranieri.
"I did not see desire or passion, I wanted to see desire - show me I am wrong, show me! I am not wrong."
- 'It is Roy of the Rovers stuff' - Wild's journey from Oldham fan to giant-killing manager
- Watch all FA Cup goals and highlights
Surridge calmly converted a penalty after Ryan Sessegnon bundled Peter Clarke to the ground in the area, sparking a dramatic finish.
Mitrovic then saw his spot-kick - his first touch of the game - saved by Iversen after the forward was brought on by Ranieri with the hosts chasing a winner.
But instead it went the way of the fourth-tier visitors who, led by caretaker boss and Latics fan Pete Wild, celebrated in front of their travelling supporters at the final whistle after knocking out a side 59 places above them.
Latics go Wild after dramatic comeback
Oldham fan Wild was handed a late Christmas present over the festive period - the gift of managing Latics on a caretaker basis following Frankie Bunn's sacking.
The 33-year-old stepped up from his role with the youth team to oversee successive victories against Port Vale and Notts County in the league, and has now added a Premier League scalp to his CV.
Wild said this week he was expecting to travel to south-west London as a fan with his mates and had already bought a ticket.
Instead he found himself in the dugout at Craven Cottage, where Oldham, 10th in League Two, sparked a dramatic comeback after frustrating Fulham, who are 19th in the Premier League, for large spells.
First Surridge made no mistake to level from the spot after Sessegnon brought down Latics skipper Clarke and then goalkeeper Iversen proved a hero at the other end as he saved Mitrovic's penalty.
The awarding of the penalty was dramatic in its own right - Oldham felt Christopher Missilou did not make contact with Tom Cairney, with the decision referred to the video assistant referee (VAR), while Mitrovic was brought on by Fulham to take it with his first touch of the ball.
Four minutes after the penalty save, Lang connected with Gevaro Nepomuceno's delivery to nod beyond Fulham goalkeeper Marcus Bettinelli and send Oldham into the FA Cup fourth round for the first time in six years.
Cottagers shocked after Ranieri tinkering
Fulham boss Ranieri said a cup tie against fourth-tier opposition was a "very good opportunity" for some of his underused players "to show their qualities".
But the Italian was furious most of those who came into his team wasted their chance as the hosts put in a lacklustre display in which they failed to register a shot on target in the first half and managed just two - Odoi's goal and Mitrovic's saved penalty - after the break.
Neeskens Kebano looked to have created a good shooting opportunity for the home side as he burst into the box beyond defender Thomas Hamer, but instead threw himself to the ground and was shown a yellow card by referee Anthony Taylor.
Fulham will be more concerned about retaining their top-flight status than competing for silverware this season.
But Ranieri will be extremely concerned about the manner in which they threw away a lead when looking seemingly in control after Odoi opened the scoring with a volley from close range.
This defeat will have done nothing to help Fulham's already brittle confidence as they prepare to face fellow Premier League relegation candidates Burnley at Turf Moor on Saturday.
'Roy of the Rovers stuff' - what the managers said
Oldham caretaker boss Pete Wild: "It is Roy of the Rovers stuff. It is one you have to savour.
"We always said the longer you stay in the game, we would have a chance. We rode our luck at times, in the end we managed to get the result we wanted, credit to the players and and the effort they put in.
"The character in the dressing room is phenomenal. We have a mixture of French and English lads who have bonded together.
"At 1-1 I thought let's just contain them, keep it at 1-1 but knowing we would get one more chance. I watched every second [of injury time] on my watch."
Fulham manager Claudio Ranieri: "The first half was boring for us, the second half much better, we scored a goal and had chances to score, but then at the end they deserved to win. They made two goals, had another great chance and well done to them.
"I am very disappointed, if we played as well as we play in the training session, we win the match. I don't know what happened for these guys."
- 4OdoiBooked at 62mins
- 20Le Marchand
- 10CairneySubstituted forMitrovicat 84'minutes
- 7KebanoBooked at 38minsSubstituted forR Sessegnonat 74'minutesBooked at 75mins
- 3R Sessegnon
- 43S Sessegnon
- 5LydenBooked at 82mins
- 10O'GradySubstituted forSurridgeat 61'minutes
- 13de la Paz
- Anthony Taylor
- Shots on Target
Second Half ends, Fulham 1, Oldham Athletic 2.
Attempt missed. Jean Michael Seri (Fulham) right footed shot from the right side of the six yard box is high and wide to the right. Assisted by Aleksandar Mitrovic.
Calum Chambers (Fulham) wins a free kick in the defensive half.
Foul by Sam Surridge (Oldham Athletic).
Attempt missed. Luciano Vietto (Fulham) left footed shot from the centre of the box is high and wide to the left. Assisted by Maxime Le Marchand.
Attempt missed. Ryan Sessegnon (Fulham) left footed shot from the centre of the box is high and wide to the left. Assisted by Luciano Vietto with a cross.
Goal! Fulham 1, Oldham Athletic 2. Callum Lang (Oldham Athletic) header from the centre of the box to the centre of the goal. Assisted by Gevaro Nepomuceno with a cross.
Foul by Aleksandar Mitrovic (Fulham).
George Edmundson (Oldham Athletic) wins a free kick in the defensive half.
Attempt blocked. Luciano Vietto (Fulham) right footed shot from outside the box is blocked.
Corner, Fulham. Conceded by Christopher Missilou.
Corner, Fulham. Conceded by Daniel Iversen.
Penalty saved! Aleksandar Mitrovic (Fulham) fails to capitalise on this great opportunity, right footed shot saved in the bottom right corner.
Substitution, Fulham. Aleksandar Mitrovic replaces Tom Cairney because of an injury.
Jordan Lyden (Oldham Athletic) is shown the yellow card.
Penalty Fulham. Tom Cairney draws a foul in the penalty area.
Penalty conceded by Christopher Missilou (Oldham Athletic) after a foul in the penalty area.
Hand ball by Ryan Sessegnon (Fulham).
Corner, Fulham. Conceded by George Edmundson.