Franck Moussa opened the scoring for Coventry after just 64 seconds, firing low into the bottom corner after Swindon had left themselves short from an attacking corner.
The first half was all Swindon after that and Andy Williams wasted a hat-trick of chances to equalise.
The striker dragged the ball into the side netting when one-on-one on the half-hour mark before hitting the post from an identical situation seven minutes later and seeing his follow-up effort tipped over the crossbar.
Swindon dominated the second half and only brave blocks from Coventry pair Nathan Cameron and Aaron Martin kept them out until the 85th minute.
Substitute Adam Rooney struck the post after following up his own shot from 10 yards and Williams was somehow able to bundle the ball over the line in the ensuing scramble.
Not content with a point, Darren Ward then headed home from a 90th-minute corner to snatch the victory.