DANNY Williams scored a last-gasp penalty as Reading FC beat Ipswich Town 2-1.

Friday night's televised clash was petering out into a draw when Ipswich defender Jonas Knudsen tripped Joey van den Berg in the area deep into stoppage time.

And Williams kept his cool and fired past Bartosz Bialkowski to make it back-to-back Championship victories for Jaap Stam's men.

In fact, it was the third penalty of the night as Garath McCleary had scored from the spot late in the first half to put royals in front, only for Brett Pitman to do the same for Ipswich soon after the restart.

It may not have been a vintage display from the Royals, and at times there were murmurs of discontent from the home fans.

But for the second game in a row Reading showed plenty of grit and desire to snatch a win at the death to keep their momentum going.

Royals had romped to a 5-1 victory in the same fixture last season. But, as Stam had warned, the chances of a repeat were slim – and how he was right.

He kept faith with the same 11 players who started in the 1-0 win at Cardiff City before the international break.

He resisted the temptation to recall a fully fit John Swift and plumped for George Evans and Danny Williams in central midfield.

Ipswich, unbeaten in three, were also unchanged since their 1-0 win against Preston, with new signings Tom Lawrence and Leon Best on the bench.

Royals, though, were under the cosh early on and it took a fine one-handed save from Ali Al Habsi to deny Freddie Sears from 20 yards in the third minute.

But Stam's men wasted a gilt-edged chance to take the lead three minutes later.

The alert Roy Beerens cut out a Tommy Smith back-pass and, with Yann Kermorgant in support and only Bialkowski to beat, an opening goal looked a certainty.

But Beerens took a fraction too long as he tried to find Kermorgant in front of a gaping net and Bialkowski slid in and intercepted the pass.

Stam's men were showing plenty of attacking intent as Beerens got free down the right and crossed for Kermorgant who headed over with nine minutes gone.

Beerens was having plenty of joy down the flanks, with the summer signing from Hertha Berlin central to most of Reading's attacks.

And, with Ipswich sitting deeper and deeper, he almost unlocked their defence once again with 26 minutes gone.

The Dutchman collected the ball near the touchline, ghosted past Smith and shifted the ball onto his right before unleashing a powerful drive that Bialkowski was grateful to beat away.

Reading, second only to Manchester City in terms of possession this season out of Premier League and Championship clubs, were bossing the game.

Yet, with no goal to show for it, there was criticism in the stands as Stam's men knocked it about the back four and looked for an opening.

Liam Moore did take a yellow when he hauled down Kevin Bru just outside the box, but it was a rare foray from Mick McCarthy's men.

They were soon on the back foot again and Evans fired a long-range warning from 35 yards which deflected narrowly over the bar.

However, moments later the ex-Manchester City midfielder was relieved to see referee Jeremy Simpson brandish just a yellow for a poor tackle on Grant Ward.

Yet just when it seemed all Reading's hard work in the first half would go unrewarded, they gifted a penalty in injury time.

In truth, it was a soft one to concede as Tyler Blackett flicked the ball onto Ward's hand just inside the area, with very little intention from the Ipswich player.

However, Simpson gave it and McCleary sent Bialkowski the wrong way for his second goal of the season.

Sadly, the lead was cancelled out four minutes after the restart – and again it came from a penalty.

This time Blackett appeared to push Pitman in the back as Knudsen's cross came over from the left.

Simpson pointed to the spot and Pitman picked himself up before slamming the ball past Al Habsi.

The goal lifted the visitors and they threatened to take the lead in the 52nd minute when Ward collected Kevin Bru's pass and hit a fierce shot on the turn which Al Habsi did brilliantly to save.

As the game began to open up, Reading hit back and McCleary should have done better with a free header that failed to test Bialkowski from a pin-point Beerens cross.

Yet Ipswich defender Smith was equally culpable on the hour when he hooked a shot over from no more than eight yards after Reading failed to defend a corner.

Al Habsi made another smart save soon after to deny Pitman at his near post then from Bru's corner, Christophe Berra headed narrowly over.

By that stage Swift had replaced McCleary and the Reading substitute went close to scoring with rasping effort from 25 yards that Bialkowski could only beat away.

Then from the resulting corner, Paul McShane's effort was cleared off the Ipswich line as McCarthy's visitors survived.

Ipswich continued to look dangerous on the counter attack and Al Habsi was equal to a Jonathan Douglas header with 78 minutes gone.

Then four minutes later Stephen Quinn sent a near-post header wide at the other end from an excellent cross from Jordan Obita, who had replaced Blackett.

But as the game entered stoppage time, Reading stole all three points.

Firstly, Kermorgant's nod-back from Swift's free-kick was begging for a final touch in the six yard box, only for van den Berg to miss the ball by an inch.

Yet van den Berg played a vital part in winning his side's second penalty of the night deep in injury time.

The Dutchman was booked moments before after tangling with an opponent as Royals waited to take a corner.

And when the ball did arrive in the box, he drew a foul from Knudsen, Simpson gave it, and Williams blasted the spot-kick past Bialkowski to snatch victory for the hosts.

It was Reading's sixth straight home win against Ipswich, who have not tasted victory in Berkshire on their last 12 visits going back to March 2009.

And of all their defeats at Madejski Stadium, this one will surely hurt the most.

Reading are next in action on Tuesday night when they face Birmingham City.