Reading netted in each half to earn a deserved 2-1 win over out-of-form Swansea City, the final home match of 2022.

Here are the player ratings.

Joe Lumley, 6: Made mostly standard saves, bar one impressive double save, but also flapped at quite a few crosses. The pros and cons level out to have a solid yet unspectacular evening for the fan favourite.

Junior Hoilett, 6: Another solid performance from the out-of-position Canada international. As always, a dangerous threat going forward and good enough to keep the Swans at bay.

Reading Chronicle:

Andy Yiadom, 6: Hardly put a foot wrong did the skipper. As always, gets his head down and gets the job done. Loved seeing him back up Lumley when opposition manager Russell Martin had words for his celebrations, true skipper qualities.

Naby Sarr, 6: Stood up well to the heavy Swans pressure. Putting his head on everything, some of the headers appeared misdirected but he did the job of getting the ball away from danger.

Tom Holmes, 7: An accomplished performance, Holmes swept everything up and never looked fazed with the oncoming attacks.

Tom McIntyre, 8: The man was everywhere. Played out of position at wing-back, the Academy graduate was constantly looking to get forward and make things happen. Moved into central midfield for the final 10 minutes and helped see the game out.

Reading Chronicle:

Mamadou Loum, 5: Looked like a red card waiting to happen. Was aggressive and sometimes won the ball in dangerous areas, but looked a bit too comfortable on the ball at times.

Jeff Hendrick, 6: A good performance from the experienced midfielder, particularly in the second half. Tracking back and keeping the ball tidily in the middle of the park, complimented Loum well.

Tom Ince, 8: The man was everywhere. Tired after the break but got his second win and dragged the Royals over the line. Took his goal well and could have had a second on the counter, running out of steam.

Andy Carroll, 7: The 'BFG' took his annual goal against the Swans well and contributed massively in defence. The clock ticks ever nearer the his contract end, with many fans calling for him the stay.

Yakou Meite, 6: Good performance from the forward, particularly in the first half. Shame he could not convert the penalty, with the Ivorian worthy of a goal, but his effort is still rising.

Reading Chronicle:

Substitutes

Baba, 5: Did his job when coming on, but had some nervy moments.

Amadou Mbengue, 6: Saw little of the ball but added energy and willingness to run.

Shane Long, 6: Came on, harried the defenders, held the ball up and saw the game out. Job done.