Jose Mourinho’s side scored twice in just over 60 seconds after the break to win a low-key match at Old Trafford.
Marcus Rashford fired against the post in the fourth minute after being set up by Romelu Lukaku as United started well.
The England international then forced Igor Akinfeev to keep out his 15th-minute effort while Lukaku’s shot was blocked after the CSKA goalkeeper had saved Luke Shaw’s volley.
When the Russian visitors launched a rare attack in the 27th minute Vitinho lashed a long-range shot wide while Vasili Berezutski’s mis-hit effort flew way off target.
Akinfeev kept Paul Pogba’s header out but, against the run of play, the visitors took the lead on the stroke of half time in controversial fashion.
Vitinho’s shot bounced off the back of Alan Dzagoev, who appeared to be offside, and went into the net and the goal was allowed to stand.
United poured forward at the start of the second period and, after a long run, Rashford left fly only to see his shot stopped by Akinfeev.
The Premier League side equalised in the 64th minute when Lukaku ended his goal drought, showing great strength to hold off his marker before firing a left-footed shot home.
United scored the winner with their next attack when the outstanding Juan Mata played in Rashford who beat Akinfeev with a fine strike.
Port Vale boss Neil Aspin is expected to choose from an unchanged squad for the home game against Exeter.