League One champions Norwich City wrapped up their away programme with a comfortable victory over Bristol Rovers.

Chris Martin scored after 31 minutes with his 23rd goal of the season to set the Canaries on course for their 29th league win of the campaign.

Substitute Oli Johnson made it 2-0 in first-half stoppage time with his first touch after replacing the injured Stephen Elliott.

Stephen Hughes knocked in the third from Martin's cross midway through the second half to make the game safe.

Nearly 1,800 City fans were at the Memorial Stadium as Paul Lambert's team completed their eighth league double of the season in some style.

City were without skipper Grant Holt, who had surgery on an ankle injury on Wednesday and will not play again this season.

Defender Russell Martin was sidelined again as he recovers from an ankle injury, while forward Wes Hoolahan was absent for the sixth game in a row with a thigh strain.

There were three changes to the starting line-up from the 2-0 win over Gillingham that clinched the title.

Holt's place in attack was taken by on-loan Stephen Elliott, while there were two changes in midfield with Matthew Gill and Anthony McNamee replacing Darel Russell and Korey Smith.

There was a surprise reappearance on the bench for defender Jens Berthel Askou, whose last first team appearance came in the 3-3 draw at Yeovil in December, when he suffered the first of two foot injuries.

Rovers made one enforced change with Byron Anthony returning in defence after a hip injury in place of the suspended Danny Coles, sent off in the 2-1 defeat at Brighton.

Leading scorer Jo Kuffour was back on the bench after being out of action with a rib injury.

Before kick-off, goalkeeper Fraser Forster was presented with the South West Canaries' player of the season award.

The Rovers players paid City the compliment of giving them a guard of honour as they took the field, both sets of fans giving the League One champions a great ovation.

Rovers had the first shot at goal but Reece's effort landed on the roof of the stand housing City's travelling fans.

Chris Martin glanced a header wide from Lappin's cross after five minutes.

Forster made a fine save from Reece's low drive in the seventh minute to keep City on terms and dived to block Lines' attempt to follow up.

One minute later, Chris Martin sliced wide from a McNamee cross as City carved out their first real opening.

McNamee then brought Andersen into action with a close-range volley without getting any power behind the effort, and at the other end, Lines struck a powerful right-foot shot just past the post.

It was end-to-end stuff and Elliott carved himself a shooting chance but pulled his shot wide from the edge of the area.

With 20 minutes gone, Elliott needed attention on his right ankle after going down awkwardly on the edge of the Rovers area.

Hughes and McNamee combined well to create an opening for Elliott, who headed just wide from McNamee's cross.

City forced their first corner after 25 minutes, Andersen punching away Lappin's inswinging kick.

The Canaries took the lead in the 31st minute when Chris Martin scored his 23rd goal of the season.

Martin intercepted a poor pass by Jones and teed up McNamee for a shot but he found his path blocked and when the ball came back to Martin, he beat Andersen with a perfectly-placed shot, all along the ground.

Jones headed clear from Spillane's cross as City threatened again, and Hughes was just unable to get enough contact on the resulting corner by Lappin.

Forster had to dash out to collect ahead of Duffy after a rare misjudgement by Nelson, but City were soon back on the attack with Rose brought down by Anthony on the edge of the area as he shaped to shoot. Anthony was booked, but Lappin struck the free-kick into the wall.

Nelson headed wide from another Lappin free-kick four minutes before the break.

There was a moment of alarm for City when Swallow's cross was allowed to pass unhindered through the penalty area with neither Forster nor the defence dealing with it, but it drifted a yard wide.

Elliott was struggling again and limped off for treatment in the final minute of the half.

A shot from Williams was deflected wide for a corner and while Rovers waited to take it, Johnson replaced Elliott.

Lines headed over from the corner and, as City counter-attacked, Johnson scored with his first touch.

A flick from Chris Martin found McNamee and his pass reached Johnson, who scored with a superb finish, clipping a right-foot shot past Andersen after a neat sidestep.

HALF-TIME: Bristol Rovers 0, Norwich City 2

Within two minutes of the restart, Johnson almost had a second when he created space for a left-foot shot that flew just over the top.

Rovers won a free-kick on the edge of the area when Nelson brought down Duffy. Lines took it, but his shot struck Johnson on the end of the wall.

Johnson cashed in on more hesitancy in the home defence when McNamee's cross drifted through but his shot was well blocked by Andersen.

As Rovers pushed forward, Williams sliced an effort wide from a pass by Lines after a misplaced pass by Chris Martin.

Rovers made their first change in the 57th minute when Richard replaced Williams.

Swallow went past Spillane and worked his way into the Norwich area but his low cross was cut out by Forster at the near post.

City made the game safe in the 67th minute when Hughes scored his third goal of the season after some woeful defending by Rovers.

Chris Martin intercepted a stray pass and took the ball wide to the right of the penalty area and when his low cross came in, Hughes bundled the ball in at the near post.

Hughes almost had a second three minutes later when McNamee put him through and his left-foot shot was well struck, but Andersen saved at point-blank range.

City made a double change with 17 minutes to go when Askou and McVeigh replaced Nelson and Lappin.

Richard fired just wide as Rovers tried to get some foothold in the game, and Swallow shot high over the top after a neat one-two on the edge of the area.

With 10 minutes left, Duffy almost pulled a goal back when his header from Swallow's cross bounced on the crossbar twice before dropping behind.

Lines caught Hughes with a bad tackle in the Norwich area six minutes from time and was shown the yellow card.

RESULT: Bristol Rovers 0, Norwich City 3

Bristol Rovers: Andersen; Regan, Anthony, Jones, Hughes; Reece, Campbell, Lines, Swallow; Williams, Duffy. Subs: Evans, Wright, Kuffour, Clough, Richard (for Williams, 57), Powell, Clarke.

Norwich City: Forster; Spillane, Doherty, Nelson, Rose; Gill; Hughes, Lappin; McNamee; Chris Martin, Elliott. Subs: Rudd, Askou (for Nelson, 73), Drury, Russell, McVeigh (for Lappin, 73), Johnson (for Elliott, 45), Smith.

Referee: Phil Gibbs (West Midlands)

Attendance: 8,836

Goals: City: Chris Martin (31), Johnson (45), Hughes (67)

Bookings: Rovers: Anthony (39), Lines (84)