Matt Cain pitched the 22nd perfect game in major league history and first for the San Francisco Giants, striking out a career-high 14 and getting help from two spectacular catches to beat the Houston Astros 10-0 on Wednesday night.