Match ends, Norwich City 3, Aston Villa 1.
Aston Villa's automatic promotion hopes were dealt a blow as they fell to a Championship defeat at Norwich City.
Winger Josh Murphy's superb, bending 25-yard effort on the stroke of half-time put the Canaries ahead.
Dennis Srbeny made it 2-0 from close range after the break when he collected Harrison Reed's clever dinked pass.
Jack Grealish pulled a goal back for Villa with a crisp low strike, but James Maddison fired into the corner to seal the win for Daniel Farke's side.
Villa remain in fourth, seven points behind second-placed Cardiff, having lost three of their past five matches and look destined for a play-off place.
However, Steve Bruce's team have a chance to claw back some of the deficit on Tuesday when they face the Bluebirds at Villa Park.
In what has been an ultimately disappointing first season under Farke, Norwich put on one of their best performances of the campaign despite having little to play for.
Murphy lit up an otherwise dour first half when he jinked in off the right and placed a curling strike into the top corner with his left foot which gave Villa goalkeeper Sam Johnstone no chance.
The second half at Carrow Road was in complete contrast to the first, with both teams pushing forward in search of goals.
German striker Srbeny scored his first goal for the Canaries since signing in January with a composed first-time finish.
Grealish's strike proved to be only a consolation as Maddison made sure of victory from 12 yards, while Srbeny and substitute Wes Hoolahan had further chances to stretch their lead.
Norwich move to within eight points of the play-offs, but would realistically have to win their remaining five matches and hope other teams slip up to sneak into the top six.
Norwich City manager Daniel Farke: "I was critical of my players from the second half against QPR so it is only fair I praise them today. It was an excellent performance against a team with a lot of good players, a really good response from the lads.
"We scored three and could have had five or six, and it follows on from Reading at home, when we could have had six of seven, and Fulham when we gave a good performance against a really good side. I think this shows we are heading in the right direction."
Aston Villa boss Steve Bruce: "We were poor, really poor, and we didn't do nearly enough to get anything from the game. There was no zip to our play, the defending for the second two Norwich goals was unbelievably poor and we absolutely got what we deserved, which was nothing.
"The players have let the supporters down - and they have also let themselves and the team down.
"It's really disappointing the way we have fallen away over the past four games, taking just four points. That's not promotion form, or even play-off form. We have failed to perform when we really needed to and handed the momentum to others, which is really disappointing."
- 4ReedBooked at 63minsSubstituted forHoolahanat 83'minutes
- 23MaddisonBooked at 36minsSubstituted forZimmermannat 80'minutes
- 11MurphyBooked at 86mins
- 32SrbenyBooked at 65minsSubstituted forOliveiraat 85'minutes
- 27El Mohamady
- 5ChesterBooked at 90mins
- 7SnodgrassSubstituted forGrabbanat 55'minutes
- 10GrealishBooked at 82mins
- 14HourihaneBooked at 68mins
- 37AdomahSubstituted forKodjiaat 55'minutes
- Peter Bankes
- Shots on Target
Second Half ends, Norwich City 3, Aston Villa 1.
Attempt saved. Nélson Oliveira (Norwich City) right footed shot from outside the box is saved in the bottom right corner. Assisted by Mario Vrancic.
James Chester (Aston Villa) is shown the yellow card for a bad foul.
Foul by James Chester (Aston Villa).
Mario Vrancic (Norwich City) wins a free kick in the defensive half.
Foul by Ahmed El Mohamady (Aston Villa).
Josh Murphy (Norwich City) wins a free kick on the right wing.
Birkir Bjarnason (Aston Villa) wins a free kick in the attacking half.
Foul by Wes Hoolahan (Norwich City).
Jonathan Kodjia (Aston Villa) wins a free kick in the attacking half.
Foul by Timm Klose (Norwich City).
Attempt saved. Ivo Pinto (Norwich City) right footed shot from the right side of the box is saved in the bottom right corner. Assisted by Grant Hanley.
Attempt blocked. Nélson Oliveira (Norwich City) left footed shot from outside the box is blocked. Assisted by Mario Vrancic.
Attempt missed. Lewis Grabban (Aston Villa) right footed shot from the centre of the box is too high. Assisted by Jack Grealish with a cross following a corner.
Corner, Aston Villa. Conceded by Jamal Lewis.
Conor Hourihane (Aston Villa) wins a free kick in the defensive half.
Foul by Mario Vrancic (Norwich City).
Offside, Aston Villa. Neil Taylor tries a through ball, but Scott Hogan is caught offside.
Josh Murphy (Norwich City) is shown the yellow card.