Cain follows perfecto with hard-earned win