Hamilton maintained the lead from the start, and apart from a pit stop lead change to Vettel, Hamilton drover superbly to take his second win on the trot and cement his lead in the driver's title race as the F1 circus goes in to holiday mode for four weeks.
Unlike Bottas, whose early pitstop meant his tyres faded in the closing laps, Hamilton made the one-stop strategy work and extended his championship lead to 24 points heading into the summer break.
In a dramatic finish, Valtteri Bottas lost control of his auto and bumped Ricciardo's Red Bull off the track as he was about to be overtaken.
It was Hamilton's record sixth win in Hungary, his fifth this season and the 67th of his career.
Daniel Ricciardo said he would "have something soon" with regards to news on his future in June, while Red Bull team principal Christian Horner claimed it would be sorted "pretty quickly" ahead of the German Grand Prix, but there has still been no official announcement.
"And he would have said the same about Lewis if he'd be in the same situation and had a similar race".
Twenty laps before the end, it was clear that if there were no accident or technical defeat, only Vettel's third place could be realistic, or overtaking Bottas, since Hamilton's advantage grew steadily. The Ferrari driver attacked around the outside of Turn 2 and when Bottas tried to defend on the dirty inside line, he locked up and slid into Vettel.
"If he had come out ahead of Valtteri, it would have been very, very hard", Hamilton told Sky Sports F1. "My best friend has got a stag do during the summer break, so that is going to be interesting, too!"
"It was good that we were faster on an older tyre than Valtteri and pulled a gap [in the opening stint]", said Vettel.
Kimi Raikkonen admitted over the weekend that it is "up to the team" whether he stays next year. By half race distance on lap 35 he was almost 25 seconds behind Vettel.
"Compared to previous year, we lost the championship I think because our auto wasn't quick enough to be a match in the final part of the season", he said. We were surprised he managed to hold Sebastian and Kimi behind for 25 or so laps and we knew the last five laps would be really critical.
"I realised I had a much better run, got the inside track out of Turn 1 so I was quite comfortable into Turn 2".
"We had a triple header to try to get one [win], and now this double header and at least up until today it hasn't really turned around, or I've got any revenge so to speak".