Hamilton beat teammate Nico Rosberg by 17.3 seconds at the Sepang International Circuit, with defending world champion Sebastian Vettel of Red Bull third.
It was the first one-two by the Mercedes factory team since 1955, when it was a dominant force in the embryonic days of F1.
Hamilton got away well from pole position and led throughout, making up for his retirement in the season-opening race in Australia and belatedly winning in Malaysia for the first time, at his eighth attempt.
"Incredibly happy, my first win here in my eighth year, so finally got that," Hamilton said. "To get a one-two is quite special, I haven't had many in my career."
The Briton was also quick to mention the ill-fated Malaysian Airlines flight MH370, which took off from the Kuala Lumpur airport adjacent to the Sepang track earlier this month and is thought to have crashed, killing all 239 people aboard.
"After such a tragedy three weeks ago, I would like to dedicate this win to those people and their families," Hamilton said.
Ferrari's Fernando Alonso finished fourth, ahead of Force India's Nico Hulkenberg and McLaren's Jenson Button, while Felipe Massa held on for seventh ahead of Williams teammate Valtteri Bottas despite being told by his team to let Bottas through.
After the race, Massa insisted he had done the right thing in ignoring team orders, though there were likely to be internal repercussions as Bottas was adamant he could have passed Button.
Two rookies took the final two points positions, with McLaren's Kevin Magnussen ninth and Toro Rosso's Daniil Kvyat tenth.
On a day when the threatened tropical rain held off, Red Bull's Daniel Ricciardo and Ferrari's Kimi Raikkonen were the leading cars that suffered the worst luck.
Ricciardo was in fourth place with 15 laps to go when the team failed to properly attach a wheel during a pitstop, forcing him to stop halfway down the pitlane and be pushed back to have it replaced. Soon after, the Australian lost his front wing, got a stop-go penalty for an unsafe release from the pitstop and then retired.
To make matters worse, the unsafe release means he will also get a 10-place grid penalty at next weekend's race in Bahrain.
It was another tough day for Ricciardo, who finished second in his home race in Melbourne, only to be disqualified after the team was deemed to have exceeded the fuel-flow limit on his car.
Raikkonen was hit from behind by Magnussen on the opening lap, causing a puncture, dropping him to the back of the field. He finished 12th, behind Lotus' Romain Grosjean who did well to make it to the finish in his Lotus, which has been beset by engine failures in the early part of the season.
Rosberg's second place extended his early lead in the drivers' championship to 18 points ahead of Hamilton, and Mercedes already has a sizeable lead atop the constructors' championship, but the German was wary about how quickly Red Bull appears to be catching up.
"They were absolutely nowhere (after preseason testing) and now (Vettel) is right in the back of me, pushing me," Rosberg said. "They have ramped up their pace, very very impressive, so we need to keep on it to keep our advantage."
Vettel, who put a squeeze move on Rosberg in the run to the first corner that almost forced the Mercedes into the pit wall, was compromised in his attempt to catch the silver cars by high fuel consumption, and in the end settled for third place.
"We need to make quick steps because they are quite far ahead but I am happy with the steps we are making," Vettel said. "It's still a bloody good result to be finishing right behind them on the podium, and that is what we need to keep doing."