To get Surf (HM 03) in Pokémon Emerald, defeat the gym leader at Petalburg City. You need to be at least to the point in the game in which you have won the Heat Badge from Flannery in the Lavaridge Gym.

  1. Defeat Flannery in Lavaridge

    If you haven't already, you need to conquer the gym in Lavaridge. It contains a maze of hot spring holes that have to be worked through. Once that is done, you face Flannery, who, not surprisingly, uses fire Pokémon that have a weakness to water attacks. Defeating her nets you the Heat Badge and the Go-Goggles, which allow you to travel through deserts.

  2. Return to Petalburg City

    At this point, you need to trek all the way back to Petalburg. Rusturf Tunnel is likely to be the optimal way to do it. Remember that you need Rock Smash to get through the tunnel.

  3. Battle Petalburg's gym leader

    The gym leader of Petalburg, who also happens to be the main character's father, can now be challenged. The gym leader uses four normal-type Pokémon: a level 27 Spinda, level 27 Vigoroth, level 29 Linoone and level 31 Slaking. Once he is defeated, you gain the Balance Badge, which allows you to use Surf outside of battle, but you have to find it first. After the battle you automatically travel to Wally's house, and you just need to speak to his father to get it.