Cain gets imperfect win for Giants over Angels