Bottas was always in control of the race after starting from pole position, with Hamilton having to settle for second spot ahead of the Ferrari of his main title rival Sebastian Vettel.
It was the first victory for the Finn since Austria in July and his third of the season, having replaced retired 2016 world champion Nico Rosberg in the dominant Mercedes team.
Hamilton, who clinched the world title in Mexico, could not find the pace to overtake Bottas, who crossed the line four seconds clear to his evident relief after struggling in recent races.
"It is a really important win for me following a difficult start to the second half of the year," said Bottas.
Hamilton, who will go into the 2018 campaign on a three-race winless streak, added: "A big, big congratulations to Valtteri. He did an amazing job to hold me off. I gave it everything on every single lap, but it is very hard to overtake here."
But consistency has certainly paid off for Hamilton, who has scored points in every race of the season, to match former F1 greats Juan Manuel Fangio and Michael Schumacher, raising his game in the second half of the season after trailing early pacesetter Vettel.
Vettel, who closed with a distant third, paid a rare tribute to arch-rival Hamilton in the post-race interviews, having clinched second place in the championship with his podium finish.
"Congrats to Valtteri, I am very happy for him, and congrats again to Lewis," he said. "He deserved to win the championship. I hate to say it but he was the better man".
"We will do our bit over the winter and hopefully come back stronger," added the German.
In an improved season for Ferrari, Kimi Raikkonen clinched fourth spot in the title standings by taking fourth place in Abu Dhabi, leapfrogging Red Bull's Daniel Ricciardo, who retired on lap 21 following a hydraulic failure.
Ricciardo's teammate Max Verstappen, who many are tipping to be a future F1 world champion, finished fifth.
German Nico Hulkenberg took sixth-place for Renault despite a controversial five-second penalty for cutting a corner, assuring his team sixth place in the constructors' championship ahead of Toro Rosso.
There was a ninth place for Fernando Alonso, but it could not prevent his McLaren team from finishing a disappointing ninth place in the team standings.
The final point was scored by popular Brazilian veteran Felipe Massa for Williams in his 269th and final grand prix before retiring.
Drivers and teams now have 120 days before the start of the 2018 season in Melbourne, where Ferrari will look to step up their challenge to Mercedes, with Red Bull also hoping to boost the chances of Verstappen and Ricciardo.