Justin Smoak, who has been battling a sore groin for the past two weeks, launched a sixth-inning three-run homer that provided the necessary cushion for stellar starter Jason Vargas and helped the Mariners to a 4-2 win over Oakland in front of 17,057 at Safeco Field.