Johnson, who was searching for a sixth championship, paid the price for a pit road mistake and a part failure, completing just 224 of the 267 laps at the South Florida speedway.
Johnson's Hendrick Motorsports team mate Jeff Gordon won the final race of the season with Bowyer second and Ryan Newman third.
The 28-year-old Keselowski delivered his team owner Roger Penske his first Sprint Cup and also provided the first since 1975 for car maker Dodge, which is leaving Cup racing at the end of the season.
"It feels really good. I can't believe how everything just came together over the last three years and you know what? I feel like the best is yet to come. I really do," said Keselowski.
The Michigan-born driver paid tribute to his team at Penske for their work throughout the season.
"It's as sweet as life gets, to know that you have people around you that can make up for you when you make mistakes, because we all make mistakes, and I make a ton of them.
"But I know that when I make them, I've got people that got my back," he said.
Johnson was left frustrated after he felt he was in with a chance of gaining the advantage he needed over Keselowski in the standings.
"We were in position and putting the pressure on the 2 car (Keselowski) like we needed to. I said at the beginning of the week, 15th isn't a lay-up, and I certainly had him in position.
"He made it really interesting here at the end of this thing. If we could have not had the mistake on pit road and then the gear failure at the end..." he said.
- Sports & Recreation
- Motor Racing
- Roger Penske