James Milner playing his last game for Swindon scored a early game after only 8 minutes to put Swindon in the lead from close range.
Referee Paul Danson made his first major mark on the game mid way through the first half when he sent off Luton manager Mike Newell from the bench.
Seconds into the second half Danson gave Swindon's Miglioranzi his second yellow card of the game, so he was sent off for not giving Luton the ball back quick enough.
Danson, and his linesman then missed an off the ball foul on James Milner a few minutes later, but made up for it by sending off Luton's Sol Davis who used to play for Swindon. Davis' sending off was a bit harsh, normally he would have only have been shown a yellow card for using his elbow.
Mid-way through the second half Luton were awarded a penalty after Viveash bought down a Luton player in the box. Rhys Evans saved the penalty, but the linesman ordered to penalty to be retaken saying that Evans had moved before the ball was kicked. Evans were also given a yellow card for protesting.
Luton scored from the second penalty, as this time Evans didn't move at all.
Luton then took the lead on 67 minutes with a good goal by Forbes beating Evans.
More yellow cards were given out to most of the remaining players on the pitch before Swindon sub Brian Howard scored his first ever league goal on 89 minutes following an Andy Gurney free kick to make the final score 2-2.
Swindon still remain unbeaten in normal time since the opening day of the season, and are now 4th in the table with 20 points. Swindon's attendances are also improving this season with 7,573 watching. Swindon travel to play local rivals Bristol City on Saturday at Ashton Gate.