The 17-year-old defender was picked out by a delightful through ball from top-scorer Simon Cox and he was coolness personified as he ran through to lash the ball home into the bottom left-hand corner.
Oldham had started the game well but failed to make their territorial advantage count against a Swindon side which had failed to keep a clean sheet all season.
Top-scorer Lee Hughes went close with a header but it was Swindon who took the lead through Morrison.
Swindon should have doubled their lead five minutes later but Bill Paynter headed a cross from Anthony McNamee straight at goalkeeper Mark Crossley with the goal at his mercy.
Swindon doubled their lead in first-half injury time after Oldham's Hughes gave away a penalty.
Jon-Paul McGovern had put over an out-swinging corner but Hughes handled the ball when he went up for a challenge with Swindon captain Hasney Aljofree.
Smith made no mistake from the spot as he sent Crossley the wrong way and buried the ball into the bottom left-hand corner of the net.
Swindon almost grabbed a third within a minute when Jon-Paul McGovern crossed for Paynter, but his header was tipped superbly wide by Crossley to keep his side in the game.
Oldham made two changes on the hour-mark with Brett Ormerod and Andy Liddell coming off for Kevin Maher and Deane Smalley.
The substitutions did not make a difference to the way the game was going as Swindon continued to boss the play.
It was Swindon who came closest to grabbing another goal through the superb Cox.
The striker, who has already hit 11 goals this season, lobbed Crossley from 20 yards but saw his shot drift just wide of the post.