Zack Greinke outpitched Cole Hamels with seven strong innings, Hanley Ramirez homered and Yasiel Puig drove in two runs for the Los Angeles Dodgers in a 5-2 victory over the Philadelphia Phillies on Wednesday night.