Scales opened the scoring with a fantastic finish from the edge of the box, but was soon cancelled out by a Frank Nouble header. The lead was restored courtesy of Cook, as he nodded past Dean Gerken to sentence Colchester to just one win in their last 22.
This result gives Bradford their first victory in six, and steadied the ship which took a slight blip in recent weeks.
Colchester United: Gerken; Tchamadeu, Eastman, Smith, Clampin, Pell, Stevenson, Senior, Sarpong-Wiredu, Nouble, Brown.
Bradford City: O'Donnell; P O'Connor, A O'Connor, Canavan, Cousin-Dawson, Wood, Sutton, Evans, Scales, Cook, Donaldson.
Story of the match
Colchester were the first to have a sniff of goal, as Brendan Sarpong-Wiredu beat the offside trap but saw his effort thwarted by Richard O'Donnell.
The Bantams immediately responded, as Connor Wood's cross found the unmarked Cook but his header was scuffed and cleared by Tom Eastman.
But as Bradford's pressure prevailed, the opener was struck- in emphatic fashion. Some sloppy passing from the home side resulted in the ball falling to the feet of Clayton Donaldson, and the veteran strike held it up before back heeling into the path of youngster Scales, who confidently rifled into the roof of the net. A brilliant first goal from the homegrown talent.
Frank Nouble looked to spark an equaliser, as he wrestled with his man before lofting to the back post, to the head of Jevani Brown whose header was clawed away by O'Donnell.
As the clock neared its half-time, the U's found their equaliser. A fantastic deep cross from Brown met the head of Nouble within the six yard box, who managed to evade a marker or O'Donnell rushing out as his header cushioned into the netting.
Into the second interval, and Gareth Evans stole possession from Junior Tchamadeu and burst through on goal, but fatigued and his shot was easily dealt with.
But with the Bantams keeping Colchester on the back foot, they took back control of the tie. Some excellent hard-work from the engine Levi Sutton as he nicked back possession and thread the ball through to Donaldson, allowing the Jamaican to break into the box before chipping to the back post, leaving Cook to blast his header past a helpless Gerken.
The away side looked to double the deficit, as the ball trickled to Scales on the edge but his effort was smothered by Gerken.
Scales once again threatened for his brace but this time came even closer, as Cook slid him through on goal and he smashed the ball off of the crossbar. Wood was near to the rebound, but lost control and it was cleared.
With time running out, Bradford looked to confirm the three points courtesy of Leeds United loanne Jordan Stevens snuck behind Gerken and plucked the ball away from his possession, but with the open goal at his disposal, he missed the chance to clinch his first Bradford goal as it was cleared off of the line. To spare Stevens' blushes, the referee brought the encounter to a close with the three points heading back to West Yorkshire.
The huge positive for this game is the crucial three points for Bradford, as the Bantams escape the torrid form and deflation they found themselves in recent weeks.
A first career goal for Scales is a brilliant achievement and he clinched it in some fashion, but he's showing why he's got the quality to perhaps be a temporary replacement for the injured Callum Cooke.
From a Colchester point of view, their underwhelming form and season continues, with time running out and the U's now carefully looking over their shoulder, as they sit just four point adrift of the relegation zone.
Despite Scales netting his goal and being a contender for man of the match, Donaldson was a revelation in attack, acting as a false nine and even notching two assists. After a long absence from the starting lineup, Donaldson has definitely given Trueman and Sellars a headache for squad selection going forward.