LOS ANGELES -- Mental discipline, perhaps more than pitch selection or mechanics, appears to provide the reason for right-hander Zack Greinke's current dominance.
Greinke pitched seven shutout innings to lead the Los Angeles Dodgers to a 4-3 win Saturday night in front of 51,252 at Dodger Stadium.
The Dodgers expanded their lead over the second-place San Francisco Giants to four games in the National League West while dropping the Mets 4 1/2 games behind the Washington Nationals in the National League East.
Greinke (7-2), who owns major leagues' best earned-run average at 1.48, extended his streak of consecutive scoreless innings to 28. He conceded just four hits and did not issue a walk while collecting four strikeouts.
Greinke attributes his success to "no mistakes, or very few mistakes," he said.
"I thought it was cool then," Greinke said. "Now, I don't really pay attention to it."
When asked whether he would like to start for the National League in this year's All-Star Game, Greinke dismissed the idea.
"I don't even think about it," he said. "I guess I just don't think about the past, or the future."
Dodgers first baseman Adrian Gonzalez hit his 15th home run of the season and third baseman Alberto Callaspo drove in two runs. New York second baseman Wilmer Flores collected three hits for the second consecutive game.
Right-hander Matt Harvey took the loss. In five innings, Harvey (7-6) allowed three runs, five walks and seven hits while striking out four.
"He had to work hard very, very hard today," Mets manager Terry Collins said. "He fell behind some counts and walked a couple of guys. It's very uncharacteristic."
Harvey, who missed all of last season after undergoing Tommy John surgery in October 2013, is considered one of the team's brightest future stars.
"We get spoiled expecting him to be great every time out and it's not going to happen," Collins said. "It's all about command, no matter how good your stuff is."
The Mets broke the shutout in the eighth after Callaspo's second run-scoring single extended the Dodgers' lead to 4-0 in the seventh.
New York scored two runs on four hits against Los Angeles' bullpen. First baseman Lucas Duda doubled off the base of the center-field fence to bring center fielder Juan Lagares home, then moved to third base when Flores lined a single to left field that scored third baseman Daniel Murphy.
In the ninth, the Mets brought the potential winning run to the plate. After being hit by a pitch, shortstop Ruben Tejada moved to second when catcher Kevin Plawecki singled, took third when left fielder Michael Cuddyer flew out and scored on Lagares' sacrifice fly.
The Mets had chances to take the lead in the first two innings against Greinke, who entered the game with the best earned run average in the majors.
Granderson began the game with single over shortstop Jimmy Rollins' glove, then moved to second base two outs later on Flores' single. But left fielder Darrell Ceciliani ended the inning by grounding out.
In the top of the second, Plawecki doubled into right-center field with one out. But Greinke struck out fellow right-hander Matt Harvey, who was batting eighth, and induced Lagares to fly out.
Instead, the Dodgers took a 1-0 lead in the bottom of the second and had chances to score more. Los Angeles loaded the bases with nobody out when catcher Yasmani Grandal walked, right fielder Yasiel Puig doubled and left fielder Andre Ethier walked.
Duda made a diving back-handed stop of Callaspo's hard ground ball and threw to the plate to retire Grandal on a force play. However, Puig scored when Rollins grounded out to Duda.
The Dodgers extended their advantage to 3-0 in the fifth. Gonzalez sent an 88 mph slider into the right-field bleachers for a solo home run, and Callaspo added a run-scoring single.
NOTES: Both teams wore special jerseys and caps to commemorate Independence Day. ... New York shared last place with the Chicago White Sox in slugging percentage, at .357 entering Saturday's play. The Mets also were ranked 29th with a .231 batting average and 27th with 279 runs scored. ... Mets RHP Matt Harvey batted eighth, with CF Juan Lagares hitting ninth. Harvey is batting .100 (3-for-30). ... Los Angeles RHP Carlos Frias, scheduled to start Monday night against the Philadelphia Phillies, might not pitch because of a lower-back injury, manager Don Mattingly said before Saturday's game. ... Dodgers 3B Alberto Callaspo made his 12th start at the position since coming from the Atlanta Braves for 3B Juan Uribe in a six-player trade May 27. ... Dodgers 2B Howie Kendrick broke the Dodgers' streak of 23 consecutive games without a stolen base Friday night. That streak was the Dodgers' longest since 1900. Kendrick had another steal Saturday night, and now needs one to reach 100 for his career.