Shaun Williams' first-half penalty provided Millwall with a victory against Aston Villa in the league's final game of the season.

The Republic of Ireland international converted from 12 yards out for the game's only goal against Steve Bruce's men who secured a playoff spot.

Millwall exceeded most people's expectations this season after finishing on 72 points, despite not securing sixth place.

Here’s how News Shopper rated Millwall’s players…

Jordan Archer - 6 - Largely untroubled, particularly during the firs half and had seldom to do. Made saves expected of him.

Ben Marshall - 9 - Cleared the ball off the line at a crucial juncture in the first half when Villa looked threatening. Got better as the game progressed. Man of the match.

Shaun Hutchinson - 8 - Denied Jonathan Kodjia when it looked Villa would score, led by example at the back with his defending.

Jake Cooper - 6 - Didn’t really put a foot and the first half was mostly comfortable for him. A decent outing.

James Meredith - 7 - Was occasionally beaten by Albert Adomah down his side when he pushed high up the pitch, however, he always recovered well.

Jed Wallace - 6 - A quiet first half for him, didn’t really get into the game. Perhaps he had more responsibility in defending, but there wasn’t much.

Shaun Williams - 7 - Scored the goal which put Millwall into the lead, almost had a second shortly into the second half. Good performance.

Ryan Tunnicliffe - 6 - Relatively consistent in his defending and applied pressure well to disrupt Villa’s attackers when necessary.

Aiden O’Brien - 6 - Worked hard down his side with Meredith, as expected. Tried to make things happen but was mostly blocked by defenders. Replaced by Lee Gregory on the hour.

Steve Morison - 8 - Should have had an assist given how much he did but he was largely let down by poor execution from Oneydinma. Very good performance overall by the skipper.

Fred Onyedinma - 4 - A very frustrating figure, his finishing left a lot to be desired as he got some good scoring opportunities but didn’t take them well enough.

SUBS

Lee Gregory - 6

Shane Ferguson - 6