
Championship Bristol City upset 10-man West Ham to book their place in the FA Cup fourth round.
The winner came in the third minute with Tommy Conway intercepting a short pass from Konstantinos Mavropanos and rounding Lukasz Fabianski before composing himself and slotting home.
West Ham, who were without key trio Jarrod Bowen, Lucas Paqueta and Mohammed Kudus, struggled to create, coming closest when a Tomas Soucek effort was tipped over by Max O'Leary.
David Moyes' side were reduced to 10 men in the 51st minute when Said Benrahma saw red for kicking out at Joe Williams in retaliation after being fouled.
The game continued to have an edge after that, with Bristol City midfielder Taylor Gardner-Hickman fortunate to only see yellow after appearing to swing an arm at Aaron Cresswell, before shoving him in the chest twice.
The Robins will play Premier League Nottingham Forest or League One Blackpool, who meet in their third-round replay on Wednesday, in the fourth round on Friday, 26 January.
"It is a blow [to go out]," Moyes told BBC Sport.
"We would have liked to have been in the cup but we have Europe to look forward to in March and we are in a good position in the league, but we are disappointed to go out."
Moyes added he had "no problem" with Benrahma's red card, but added it was "amazing they call this one of the biggest cup competitions but we don't have VAR in all the games".
"The atmosphere was phenomenal," Bristol City boss Liam Manning told BBC Sport. "A special memory for me and the players.
"We showed real resilience, a good connection and level of organisation. At times it was challenging and we had to keep our emotions in check and we did a terrific job at that.
"I actually think we can improve and get a little bit better."
West Ham's lack of depth proves costly
With Bowen and Paqueta picking up injuries in the original tie nine days ago, and Kudus with Ghana at the Africa Cup of Nations, West Ham were always likely to lack firepower.
That belief was only extended with their starting front three of Danny Ings, Maxwel Cornet and Benrahma yet to score this campaign.
The early goal, which was completely avoidable and bound to infuriate Moyes, left them on the back foot.
Ings flashed an effort wide in the first half after producing a nice turn, while Cornet failed to convert a difficult chance from four yards after Soucek's initial effort fell to him.
The Hammers were poor in the second half, with Soucek's effort their only strike on target.
The loss of composure from Benrahma was costly with them then unable to commit and throw much at Bristol City, who were disciplined and the better side.
Moyes also had a lack of options from the bench with two goalkeepers and five youngsters among the eight named, and once again highlighted the need for West Ham to add depth to their squad.
It is the first time they have failed to reach the fourth round since 2016-17 and will lead to more questions for Moyes, with sections of the West Ham fanbase questioning his position before this early exit.
Still though, the Hammers sit sixth in the Premier League and have a Europa League last-16 tie in March. They still have plenty to play for this season.
Player of the match
ConwayTommy Conway
with an average of 7.83
Bristol City
Squad number15Player nameConway
Average rating7.83
Squad number3Player namePring
Average rating7.56
Squad number2Player nameMcCrorie
Average rating7.28
Squad number26Player nameVyner
Average rating7.21
Squad number19Player nameTanner
Average rating7.10
Squad number16Player nameDickie
Average rating7.09
Squad number1Player nameO'Leary
Average rating7.03
Squad number21Player nameWells
Average rating7.02
Squad number20Player nameBell
Average rating7.01
Squad number22Player nameGardner-Hickman
Average rating6.95
Squad number6Player nameJames
Average rating6.91
Squad number12Player nameKnight
Average rating6.86
Squad number11Player nameMehmeti
Average rating6.84
Squad number8Player nameWilliams
Average rating6.84
Squad number9Player nameCornick
Average rating6.65
West Ham United
Squad number33Player nameEmerson
Average rating5.77
Squad number1Player nameFabianski
Average rating4.86
Squad number2Player nameJohnson
Average rating4.80
Squad number50Player nameMarshall
Average rating4.68
Squad number7Player nameWard-Prowse
Average rating4.62
Squad number28Player nameSoucek
Average rating4.53
Squad number4Player nameZouma
Average rating4.14
Squad number5Player nameCoufal
Average rating4.08
Squad number3Player nameCresswell
Average rating3.80
Squad number45Player nameMubama
Average rating3.57
Squad number17Player nameCornet
Average rating3.27
Squad number15Player nameMavropanos
Average rating2.88
Squad number18Player nameIngs
Average rating2.80
Squad number22Player nameBenrahma
Average rating2.39
Line-ups
Bristol City
Formation 3-4-2-1
- 1O'Leary
- 19Tanner
- 26Vyner
- 16Dickie
- 2McCrorieSubstituted forBellat 61'minutes
- 8WilliamsBooked at 50mins
- 6James
- 3Pring
- 22Gardner-HickmanBooked at 63minsSubstituted forKnightat 75'minutes
- 11MehmetiSubstituted forCornickat 75'minutes
- 15ConwaySubstituted forWellsat 61'minutes
Substitutes
- 9Cornick
- 10King
- 12Knight
- 20Bell
- 21Wells
- 23Bajic
- 24Roberts
- 27Knight-Lebel
- 30Nelson
West Ham
Formation 3-4-2-1
- 1Fabianski
- 15Mavropanos
- 4Zouma
- 3CresswellBooked at 64minsSubstituted forMarshallat 80'minutes
- 5CoufalSubstituted forJohnsonat 66'minutes
- 7Ward-Prowse
- 28Soucek
- 33Emerson
- 17Cornet
- 22BenrahmaBooked at 51mins
- 18IngsSubstituted forMubamaat 81'minutes
Substitutes
- 2Johnson
- 21Ogbonna
- 23Areola
- 42Casey
- 45Mubama
- 49Anang
- 50Marshall
- 57Scarles
- Referee:
- Darren England
- Attendance:
- 25,616
Match Stats
Live Text
Match ends, Bristol City 1, West Ham United 0.
(Feed generated with FetchRSS)