Cain wins 6th straight start as Giants beat Padres