Cheltenham's Steve Elliott grabbed the only goal as Paolo di Canio suffered his first defeat as Swindon manager.
Swindon's Alan McCormack hit the post early on but Cheltenham fought back and Elliott scored the winner when he powered a header past Phil Smith.
Cheltenham ended the match with 10 men as James Spencer was shown a straight red card for elbowing Aden Flint.
This match had been postponed because of safety concerns before a U-turn from the police allowed it to go ahead.
VIEWS FROM THE DRESSING ROOM
Cheltenham Town manager Mark Yates told BBC Gloucestershire:
"There were two committed and decent teams on the field today so we had to battle, scrap and dig in at times.
"We've been working hard on the set-pieces and the quality of the run and the delivery for the goal was spot on. I thought we deserved to come out on top and it was a well deserved victory.
"Marlon Pack and Russell Penn were excellent in central midfield against two very competitive and very good players. They dominated and got onto the ball very competitively and were the heartbeat of the team."
Swindon Town manager Paolo di Canio told BBC Wiltshire:
"I was happy for the first 25 minutes because the team did what we wanted. We put them under pressure.
"If you don't take your chances at any level it's difficult.
"We didn't believe in ourselves, we lost the confidence."