Ringside judges all favoured Bute in their final scores of 115-113, 116-112 and a much higher margin of 118-112, in the Romanian’s first fight since he lost his super middleweight title to Froch in May.
The result should set up a rematch with the 35-year-old British fighter in 2013.
The Bell Centre crowd of 10,122 watched a war of attrition for the majority of the bout as Bute stayed cautious for 11 rounds and avoided direct contact from the heavy-hitting Grachev.
The 30-year-old Russian was the slightly more imposing of the two as he repeatedly backed his opponent up against the ropes and fired shots to his head and body.
But Bute never looked out of control, and queries over his ability to take a hard hit to the chin after his last loss were all but silenced here.
He went on to own the 12th round, dictating the pace from the centre while simultaneously throwing his trademark straight left and uppercuts, and forcing the Russian to miss outrageously at times.
The undercard saw former WBC flyweight champion Rodrigo Guerrero of Mexico snatch an exciting eight-round win over Sebastien Gauthier.