Zack Greinke allowed one run in eight innings to win his fourth start in a row Wednesday, and the Los Angeles Dodgers took advantage of sloppy defense by the Miami Marlins for the second consecutive night to beat them, 4-1.