Bute, the 31-year-old Canadian-based Romanian, won every round on two of the judges' cards (120-108), while the third judge scored it 119-109.
"It was a great fight and a great performance for me," said southpaw Bute (30-0), who saw his string of six consecutive KOs snapped.
"Glen Johnson is a great fighter. To beat him, you have to avoid the jab. I did that and I tried to out-jab him. I have to be able to beat guys like him."
Johnson, 42, injured his right arm during the contest but opted to continue to the bitter end.
The Jamaican, who has now lost five of his last nine fights in an overall record of 51-16-2, claimed the judges had been duped by Bute's strong local support.
"I think I won the fight," said Johnson. "I beat him with one hand.
"It's tough to win in your opponent's hometown because as soon as he does one little thing, the crowd goes crazy instead of paying attention to what the punches are telling you."
Meanwhile over in Hollywood, Florida on the same night, Panama's Guillermo Jones kept hold of his WBA cruiserweight belt courtesy of a sixth-round technical knockout of Mike Marrone.
Jones had Marrone on the floor in the fifth and sixth rounds at the Hard Rock Live Arena to improve his career mark to 38-3-2.