You obtain HM03 Surf after defeating Norman the fifth gym leader, and Wally's father will reward you with surf.
I believe that it's Wally's father who gives you the HM Surf.
You get it after the 5th gym battle where you go next door to Wally's house and talk to his dad who then gives you surf.
Yes, Marill can learn Surf.
The most easiest way to get a Pokemon that can surf is get a Zizagoon,it can learn surf.
to get surf in sapphire you have to go and beat your dad.then go next door to the left.that is wallys house witch you will need to get surf,but you will need to talk to the old man i belive it is.
Surf to an island
Go east from mauville city use surf and go to the right talk to the fisherman looking at the water he gives you the good rod.
Surf Right of Lilycove
you have to surf from Lincoln .
You have to surf there from Sootopolis or Mossdeep.
u have 2 beat your dad ( gym leader) then a guy walks in and takes u 2 his house and gives u surf but beware, he's petalburg's gym leader(5th).
surf