The flying Finn started second on the grid but got a jump on the polesitting Briton at the first corner and never looked back, scorching round the Albert Park circuit to take the chequered flag a massive 20.9 seconds ahead of Hamilton.
Red Bull's precocious Max Verstappen came third to join them on the podium after audaciously overtaking Ferrari's Sebastian Vettel midway through the race.
Four-time world champion Vettel had to settle for fourth, trailing in 57.1 seconds behind Bottas. Ferrari partner Charles Leclerc was fifth, with Kevin Magnussen in a Haas sixth.
"How about that! Yes!" said Bottas over the team radio after also taking the new bonus point for the fastest lap of the race. "Thank you guys."
Bottas was overshadowed last year by Hamilton, failing to win a race, hampered by mechanical problems and bad luck but was fast in qualifying and only narrowly edged out of pole position.
Bottas, now in his third year with Mercedes, knows he must perform with promising Frenchman Esteban Ocon, 22, waiting in the wings as the team's reserve driver.
He delivered in spades on Sunday for his fourth Grand Prix win in his 119th race.
Driving on soft tyres on a fine day, he got an electric start and built a gap of 1.153 seconds on Hamilton after the opening lap, with Vettel, Verstappen and Leclerc trailing in their wake.
The gap kept growing, and when Vettel pitted on lap 14 to swap for medium tyres Mercedes called in five-time champion Hamilton soon after.
- Hamilton frustrated -
Bottas stayed out, pumping out fastest laps, and when seven laps later he pitted he emerged more than 10 seconds ahead of his team-mate, who was clearly bemused.
"What was the reason for stopping so early?" Hamilton asked over the team radio, to be told it was to cover Vettel's early stop.
"I don't think I'm going to make it to the end on this tyre," added the frustrated world champion.
With Bottas having an unsurmountable lead the battle was on for second, with Verstappen hounding Hamilton but unable to find a way through.
Mercedes have been in a class of their own all weekend, turning the tables on pre-season testing when Ferrari looked like the team to beat.
The Italian team's performance will be a source of worry, especially as they haven't won the constructors' title since 2008 and their last driver to become world champion was Kimi Raikkonen in 2007.
In contrast, Mercedes and Hamilton have been dominant, winning the drivers' and constructors' titles five years in a row.
Carlos Sainz Jr was the first casualty, forced to stop his McLaren with smoke and flames billowing out of his engine on lap 10 while he was running 14th.
It was also a day to forget for local hero Daniel Ricciardo in his first race for Renault after switching from Red Bull.
He lost his front wing after running onto the grass before the first corner and had to pit for a new nose. He finally retired on lap 30 of the 58-lap race.
The next Grand Prix is in Bahrain on March 31.
Results from the Australian Formula One Grand Prix after 58 laps of the Albert Park circuit in Melbourne on Sunday:
1. Valtteri Bottas (FIN/Mercedes) 308 km in 1hr 25min 27.325sec
2. Lewis Hamilton (GBR/Mercedes) at 20.886 sec
3. Max Verstappen (NED/Red Bull) at 22.520 sec
4. Sebastian Vettel (GER/Ferrari) at 57.109 sec
5. Charles Leclerc (MON/Ferrari) at 58.230 sec
6. Kevin Magnussen (DEN/Haas) at 1:27.156 sec
7. Nico Hulkenberg (GER/Renault) at 1 lap
8. Kimi Raikkonen (FIN/Alfa Romeo) at 1 lap
9. Lance Stroll (CAN/Racing Point) at 1 lap
10. Daniil Kvyat (RUS/Toro Rosso) at 1 lap
11. Pierre Gasly (FRA/Red Bull) at 1 lap
12. Lando Norris (GBR/McLaren) at 1 lap
13. Sergio Perez (MEX/Racing Point) at 1 lap
14. Alexander Albon (THA/Toro Rosso) at 1 lap
15. Antonio Giovinazzi (ITA/Alfa Romeo) at 1 lap
16. George Russell (GBR/Williams) at 2 laps
17. Robert Kubica (POL/Williams) at 3 laps
10th lap: Carlos Sainz Jr (ESP/McLaren) engine
30th lap: Daniel Ricciardo (AUS/Renault) mechanical problem
30th lap: Romain Grosjean (FRA/Haas) mechanical problem