Marco Gonzales went seven strong innings allowing just two runs on five hits to lift the Seattle Mariners to a 4-3 win over the Kansas City Royals.