Norwich City have retained control of the Championship title race but a 3-1 win at Queens Park Rangers wasn't enough to become champions this afternoon.

Xavi Quintilla had given the Canaries the lead in the first half but a Tim Krul penalty save was needed early in the second half prior to Max Aarons making it 2-0.

Teemu Pukki had wasted a fine chance for 3-0 before Lyndon Dykes reduced the arrears for QPR but Emi Buendia's 14th goal of the season made sure of the win in the 82nd minute.

With title rivals Watford beating Millwall elsewhere to seal promotion, City's cushion at the top remains five points, with six to play for - so victory at home to Reading next Saturday would make Daniel Farke's leaders the champions - for a second time in three seasons.

The hosts were looking for a fourth win on the spin but their play-off hopes had already come to an end despite a fine run of form, beating promotion challengers Watford, Bournemouth, Swansea and Brentford in 2021.

They made three changes, including the return of first-choice goalkeeper Seny Dieng after suspension, but the Canaries stuck with the same starting XI with Quintilla retaining the left-back berth as Dimitris Giannoulis served the second game of his three-match ban.

With warm and sunny conditions finally arriving deep into April, there was very nearly a disastrous start for the leaders, with a sloppy Todd Cantwell touch robbed by Chris Willock and Osman Kakay firing low beyond the far post from the right side of the box.

There were a couple of early chances for City as well though, with Buendia nipping in after a poor backwards header and lifting the ball over the keeper but wide, and Pukki dragging wide from the edge of the box after cutting in from the left wing.

Kieran Dowell slipped Pukki into the box in the 10th minute but the Finn scuffed his effort as he tried to shape his body to slot the ball past the keeper into the bottom-right corner.

The Canaries were enjoying the majority of the possession but the Rs were trying to counter quickly.

One attack was ended by an Andrew Omobamidele interception in the 21st minute but Cantwell could only slice at an attempted volley from a Dowell cross from the right, and soon after Dowell dragged a low shot beyond the far post after being teed up by Quintilla in space on the edge of the box.

The largely encouraging opening continued for the already-promoted visitors but a rampaging Kenny McLean run couldn't find the opening, with Dowell opening up the shooting opportunity but seeing his effort deflect to Dieng.

City found the breakthrough in the 32nd minute with a slice of good fortune, Buendia switching left-footed to Quintilla in space, with the Spaniard trying his luck from 25 yards and his swerving, low effort squeezing through Dieng's arms and over the line despite his best attempts.

Soon after and Dieng stretched well to get down to a Dowell effort to his left and then it was Krul to the rescue at the other end in the 37th minute, after Ilias Chair had threaded striker Dykes through on goal, with the Dutchman saving with his feet.

Aarons had a shot held at the near post in the 43rd minute, when he should really have passed to Buendia in space, but Norwich went into the break with the lead.

QPR made a half-time change in midfield, with Sam Field replacing George Thomas. There was an early chance for both teams but Cantwell thumped over for City and Chair curled beyond the top-right corner for the Rs.

Then the game's defining few minutes arrived after a low Dowell shot was held by Dieng after being teed up by Quintilla in the 54th minute.

QPR countered swiftly and skipper Grant Hanley seemed to lose his balance as he tumbled into Willock to concede a clumsy penalty. Dykes went low and central with the spot-kick and Krul dragged his feet behind him to make the save and then claim the loose ball.

It felt like a huge moment and within two minutes it was proven to be, as McLean curled a delicious cross to the back post from the left, where Aarons was gliding through the air to guide a side-footed volley into the net from point-blank range.

It should have been game over in the 64th minute, when good play from Oliver Skipp allowed Dowell to send Pukki clean through and with time to pick his spot past Dieng, only to somehow blast wide of the right post.

Rangers boss Mark Warburton responded by bringing on the experience of Albert Adomah and Charlie Austin for Kakay and Chair - prompting an almost immediate spell of pressure.

It brought a goal in the 71st minute, as Willock got in behind Quintilla and crossed low, Austin's attempted shot looped to Dykes at the back post, to slot in from close range and make things interesting.

It was West Brom loanee Austin causing the problems, heading an Adomah cross over in the 77th minute, as City appeared to run out of steam, with Jacob Sorensen replacing Dowell and McLean pushed further forward.

It was Scotland midfielder McLean who was crucial to making sure of the three points as well, winning possession high up the pitch and crossing to an unmarked Buendia for a simple tap in for 3-1 in the 82nd minute.

QPR (3-5-2): Dieng; Dickie, De Wijs (Ball 76), Barbet (C); Kakay (Adomah 66), Thomas (Field 46), Chair (Austin 66), Johansen (Bettache 89), Wallace; Willock, Dykes. Unused subs: Walsh (GK), Kane, Hamalainen, Bonne

Booked: Field (foul on Skipp, 68)

NORWICH (4-2-3-1): Krul; Aarons, Omobamidele, Hanley (C), Quintilla (Tettey 89); Skipp, McLean; Buendia (Placheta 89), Dowell (Sorensen 74), Cantwell (Hernandez 85); Pukki (Hugill 85). Unused subs: Nyland (GK), Mumba, Vrrancic, Stiepermann

Booked: None

REFEREE: James Linington (South Wales)