Midfielder Ferry timed his burst into the box perfectly to settle a tight contest in Swindon's favour in the 77th minute, firing low past Chris Weale from eight yards after Andy Williams nodded down a cross from sub Adam Rooney.
Shrewsbury made much of the early running with debutant Sam Winnall, on loan from Wolves, testing Wes Foderingham from 30 yards before heading an Aaron Wildig free-kick over the bar.
Swindon improved as the contest developed and after Williams fired just wide from a good position, former Shrewsbury striker James Collins missed a golden chance to give Paolo Di Canio's men the lead on the stroke of half-time.
Michael Hector cleared Williams' effort from off the line and Collins, just two yards out, ballooned the rebound high over the bar from close range.
Collins fluffed his lines again just after the break when he was denied by a fine reflex save from Weale. Swindon looked increasingly dangerous as the match went on and Ferry secured the visitors' three points.