The German claimed his first win since the Singapore GP in September 2015 thanks to quick thinking from his team and a rapid pitstop, helping him beat Hamilton to first place in Melbourne.
Vettel had qualified second behind the Englishman, on his 62nd career pole position, and was beaten into turn one as the Mercedes got away cleanly, but the 32-year-old was unable to look after his tyres and was forced to make his pit stop on lap 17.
It was the first time that Ferrari won the opening race of the season since Fernando Alonso did so in Bahrain in 2010, and also Vettel's first victory at the opening race since 2011.
Hamilton had to settle for second, crossing the line almost 10 seconds behind Vettel, while his new Mercedes teammate Valtteri Bottas was third.
Elsewhere, Max Verstappen salvaged fifth on a troubled weekend for Red Bull, Felipe Massa took sixth despite trailing Vettel by almost a minute and a half, while both Force Indias and Toro Rossos secured points-scoring results despite being lapped.
Australian GP results (click here for full version):
1. Sebastian Vettel (Ferrari)
2. Lewis Hamilton (Mercedes)
3. Valtteri Bottas (Mercedes)
4. Kimi Raikkonen (Ferrari)
5. Max Verstappen (Red Bull)
6. Felipe Massa (Williams)
7. Sergio Perez (Force India)
8. Carlos Sainz (Toro Rosso)
9. Daniil Kvyat (Toro Rosso)
10. Esteban Ocon (Force India)
11. Nico Hulkenberg (Renault)
12. Antonio Giovinazzi (Sauber)
13. Stoffel Vandoorne (McLaren)
14. Fernando Alonso (McLaren)
15. Kevin Magnussen (Haas)
16. Lance Stroll (Williams)
17. Daniel Ricciardo (Red Bull)
18. Marcus Ericsson (Sauber)
19. Jolyon Palmer (Renault)
20. Romain Grosjean (Haas)