Verstappen finished almost 30 seconds behind Hamilton in second, but was impressive in clawing his way back from seventh, having been being given a grid penalty after qualifying.
The Red Bull driver also took home the bonus point for posting the fastest lap in the closing stages to further limit the damage on what threatened to be a difficult weekend.
This year’s title race is set to go down to the wire with just two grands prix remaining this season in Saudi Arabia and Abu Dhabi.
“It was pretty straightforward, it’s pretty lonely at the front,” Hamilton told Sky Sports. “Of course I enjoy those races … we needed those points today, so a really solid job from the team.
“I cant wait to watch a replay of the race to see what happened behind me. I’m really grateful for these points. It puts us in good stead for the next two.”
Despite seeing his lead reduced for the second consecutive race, Verstappen was sanguine about the weekend’s results.
“Of course our starting position was a bit compromised, but we had a really good start,” Verstappen said. “At the end of the day to get that fastest lap was nice, it’s going to be difficult to the end.
“It’s going to be exciting. I feel good, it’s gonna be a tight battle to the end.”
Fernando Alonso took an impressive third place with Alpine, marking his first podium finish since 2014 when he was driving for Ferrari.
The Spaniard was visibly ecstatic with the result, leading him to drop an F-bomb on the live broadcast.
Red Bull’s Sergio Perez couldn’t quite fight his way past Alonso and had to settle for fourth place, with Esteban Ocon rounding off a brilliant weekend for Alpine by coming fifth.
Lance Stroll, Carlos Sainz, Charles Leclerc, Lando Norris and Sebastian Vettel completed the point places.
Lewis Hamilton wins Qatar Grand Prix to cut Max Verstappen’s championship lead