Danny Hollands got the other as Swindon scored all their five goals in 22 hectic second-half minutes.
For an hour there was little to distinguish Paolo Di Canio's promotion-chasers from Portsmouth who had not won in 12 matches.
But when Collins came on in place of Chris Martin on the hour mark, the match was turned on its head as Portsmouth's resistance quickly crumbled.
Collins had only been on the pitch for 30 seconds when he turned in a centre from former Portsmouth winger Matt Ritchie in the 61st minute.
Collins scored his second after 66 minutes when Hollands had a shot blocked and the Irish striker turned provider when he set up an easy goal for Hollands three minutes later.
He completed his hat-trick in the 73rd minute with a low shot from the edge of the area after Ritchie had opened an ailing Portsmouth defence.
Collins got his fourth and Swindon's fifth after 83 minutes when he stooped to head in a low centre from Alan McCormack.