Rod Thomas flashed a shot narrowly over the bar as the visitors began on the front foot.
Crewe began to forge more chances as the first half wore on, but Lauri Dalla Valle's header shaved the post 10 minutes before the break and Colclough could only fire straight at Vigouroux.
In the 45th minute, Vigouroux produced another save to claw away Chris Atkinson's powerful effort.
Nicky Ajose should have netted a debut goal against his former side early in the second half, but after a defensive mix-up from Crewe, the forward couldn't direct the ball into an empty net from 35 yards.
He was made to pay shortly after as Adam King's left-foot strike nestled in the bottom corner from 22 yards to put Crewe ahead.
Ajose almost made amends for his earlier miss with a fine effort, but Garratt was equal to it.
Both sides looked to find a winner in the latter stages, with Ajose and Colclough both going close, but it was Thomas that found the back of the net with a thumping shot from inside the box.
In stoppage time, Ajose eventually scored with a rasping strike into the top corner to put a gloss on the result.