DANNY WILLIAMS bagged a stoppage time winner as Reading saw off Ipswich Town 2-1 in a tale of three penalties at Madejski Stadium.
Royals took the lead moments before the end of the first half when Garath McCleary converted from the spot after a handball from Gavin Ward.
But the Tractor Boys levelled up shortly after the restart when Tyler Blackett was adjudged to have nudged Brett Pitman, allowing the former Bournemouth striker to step up himself and notch his first goal of the season.
And just as the game looked to be drifting out to a draw, Williams popped up in the closing seconds to win it for Reading after Jonas Knudsen dragged down Joey van den Berg.
The victory lifts Royals up to third in the Championship table for a few hours at least.
READ: Jaap Stam “proud” of his players but feels penalty decision was harsh
Jaap Stam named an unchanged side from the one which beat Cardiff City, meaning John Swift had to settle for a spot on the bench once again.
It was almost a year to the day since Ipswich last visited Madejski Stadium with the Royals romping to a 5-1 victory on that occasion.
But the hosts are a very different side from that day with only two players, Chris Gunter and Paul McShane, starting both a year ago and now.
And a repeat of the goal fest never looked on the cards.
Reading started slowly with Ali Al-Habsi on hand to parry away an early Freddie Sears effort while Roy Beerens was looking lively down the other end.
But in truth there were few chances for either side with Bartosz Bialkowski doing well to thwart Beerens’ pass towards Yann Kermorgant to deny the Frenchman a tap in.
George Evans also headed over after fine work by Beerens before the winger himself test the Ipswich keeper with a stinging drive.
As has been the case in other recent home games, Reading fans were beginning to grow frustrated with the side’s patient passing philosophy out of defence as they struggled to find their way through.
But just as the drab half was about to come to a close, Royals were handed a golden chance to go into the break ahead from the penalty spot.
Blackett lifted a cross into the box but it was blocked by the outstretched arm of Ward and the referee duly pointed to the spot.
Up stepped McCleary, who has a history of scoring televised goals, sliding into the bottom corner, sending Bialkowski the wrong way.
However, just minutes after the restart the contest was level again.
And it was another spot kick, this time awarded when Pitman was shoved in the back by Blackett.
The striker took on the responsibility himself, slamming straight down the middle.
The match fell into a similar pattern to the first half with Reading dominating possession but struggling to create clear cut openings.
In fact, the better chances were coming from the visitors with Al-Habsi on hand to deny Ward before Tommy Smith inexplicably scuffed an effort over the bar from six yards.
Stam threw on Swift and Stephen Quinn to try and add something extra but the game looked to be petering out into a draw until the dying minutes of stoppage time.
Reading appeared to have missed their best chance to grab a winner when van den Berg could not quite reach Kermorgant’s knock down, but there was to be a third penalty awarded right at the death.
With the game ticking into the fourth and final minute of stoppage time, the referee pointed to the spot when Knudsen impeded the run of van den Berg.
Williams took the honours, coolly dispatching past Bialkowski to earn Reading three huge points.
READING: Al-Habsi; Gunter, McShane (c), Moore, Blackett (Obita 82); van den Berg, Evans (Quinn 59), Williams; McCleary (Swift 66), Beerens, Kermorgant.
Subs not used: Jaakkola, Watson, Obita, Swift, Quinn, Harriott, Mendes.
Goals: McCleary (45+3), Williams (90+5)
Yellow cards: Moore (29), Gunter (39), Evans (40), Blackett (49), van den Berg (90+4)
IPSWICH: Bialkowski, Chambers (c), Smith, Berra, Knudsen, Skuse, Douglas, Bru (Bishop 68), Ward (Varney 86), Sears, Pitman.
Subs not used: Gerken, Webster, Bishop, Grant, Lawrence, Best.
Goal: Pitman (50)
Yellow cards: Chambers (53), Berra (90+4), Knudsen (90+5) Skuse (90+5)
Referee: Jeremy Simpson
Attendance: 15,146