Crewe held out until the 34th minute when Nile Ranger scored his first league goal for Swindon but then the visitors faded rapidly as the home side took control without ever having to be at their best.
Ranger, scorer of one of the goals in the shock cup win at QPR in midweek, converted Yaser Kasim’s pass with a left-foot shot and Crewe never recovered.
Massimo Luongo added the second in the 43rd minute with an intended cross which drifted over Crewe goalkeeper Alan Martin and Town threatened to run riot after the break.
Mason got on the scoresheet just after the break, turning in another defence-splitting pass from Kasim, and then got his second in the 55th minute from the penalty spot when Martin brought down Ranger to earn a yellow card.
Mason’s third came in the 70th minute when he turned in a low centre from Alex Pritchard and he should have had a fourth in the last minute when Ranger was fouled again but this time Martin saved the spot kick.
In the dying seconds, Swindon’s Louis Thompson hit the bar as Crewe folded.