Isn't it irritating when you head off on some route, only to notice that you've forgotten to bring a Pokémon who knows an HM move that you need to navigate it? Then you have to fly back to a Pokémon Center to withdraw a monster that does have the moves you need. Unless you always leave two or more slots in your party for "HM slaves," this guide may help you plan ahead to avoid wasting valuable time.
List of HM Locations:
HM01: Cut is received from Cynthia in Eterna City.
HM02: Fly is obtained from the Galactic HQ in Veilstone City.
HM03: Surf is received from the elder in Celestic Town.
HM04: Strength is received from Riley on Iron Island.
HM05: Defog can be retrieved from the Solaceon Ruins.
HM06: Rock Smash is received from a man in Oreburgh Gate.
HM07: Waterfall is received from Jasmine in Sunyshore City.
HM08: Rock Climb is retrieved on Route 217.
Even though the Bike is not a Hidden Machine, it is necessary to navigate quite a few routes. We've noted this in our guide. Unlike HMs, your Bike is always available to you in the Key Items section of your bag, once you've obtained it in Eterna City prior to the second badge.
HMs in parentheses indicate ones that are not strictly necessary to get through a route, city, or dungeon, but may be beneficial or necessary if you want to explore 100% of it.