NEW YORK (AP) -- Wilmer Flores sure looked like a major league shortstop Saturday night, in every way possible.
Given an opportunity to play regularly of late, Flores finally provided a spark with his bat and glove in leading Jonathon Niese and the New York Mets to a 7-3 victory over the Chicago Cubs.
Juan Lagares drove in two runs and reliever Vic Black escaped a major jam unscathed to keep New York in control after Niese exited. Star third baseman David Wright also was removed in the seventh, one inning after he was hit in the upper back by an 88 mph fastball from Dan Straily.
The Mets, outhit 7-4, said Wright had a sore left shoulder.
"Just got me in a spot that's bothersome," said Wright, who missed time this summer with an injury to the same shoulder. "They thought it would be best to give it a little bit of a rest. More than anything, just unlucky with the spot that it got me."
New York manager Terry Collins said Wright was pretty sore and probably will get at least one day off.
The 23-year-old Flores, a touted hitting prospect trying to show he can play adequate defense at shortstop, followed Lagares' RBI double with a two-run single in the second.
Flores also made a diving stop and another difficult play in the hole to prevent base hits. He turned a pair of double plays, including one that got Niese (7-8) out of a bases-loaded jam after Chicago's first two batters reached on errors.
"I told him he's having tomorrow off. I guess he said, 'I'm going to leave it on the field tonight,'" Collins said. "I asked him today how comfortable he was getting at shortstop and he said, 'Look, I feel good any place you put me.' So I thought it was a pretty good statement."
Welington Castillo and Justin Ruggiano homered for the last-place Cubs, who have lost three straight.
Niese took a 7-1 lead into the seventh before giving up five straight hits, including Ruggiano's leadoff homer. The last one was a line-drive RBI single by pinch-hitter Ryan Sweeney that struck the left-hander on his pitching arm.
"Just hit my forearm. Got the meat, missed the bone," Niese said. "It's good."
Niese departed with the bases loaded and New York ahead 7-3. Black, who has excelled at stranding runners, retired the top three batters in Chicago's lineup to stop the rally.
"He's been unbelievable. The job he's done to come in with guys on base is truly amazing. I mean, he has not flinched," Collins said. "His command is, I mean, it's 10 times better when there's guys on."
Niese had an RBI groundout in a four-run sixth, when the only Mets hit was a single by Travis d'Arnaud. Niese has won consecutive starts after dropping four in a row immediately following his return from the disabled list July 21.
Mets: Rookie RHP Jacob deGrom (rotator cuff tendinitis) threw on flat ground and said he felt no pain. There is a good chance he'll throw a bullpen Sunday, Collins said. ... RHP Daisuke Matsuzaka (elbow inflammation) allowed one run and three hits over six innings in a rehab start for Double-A Binghamton. ... Collins said the Mets are concerned about all the punishment C Travis d'Arnaud is taking behind the plate on foul balls and backswings, especially since d'Arnaud has already had three concussions in his career.
Mets rookie Rafael Montero (0-3, 6.12 ERA) tries again for his first major league win Sunday when he faces RHP Jake Arrieta (6-4, 2.77) and the Cubs. Montero has served up eight homers in 25 innings, the most in club history through five big league outings. He gave up four home runs in 75 innings at Triple-A Las Vegas this year.
MAKING THEM COUNT
New York has won consecutive games with four hits or fewer for the fourth time in team history, and first since 1989.
Chicago SS Starlin Castro went 0-for-4, ending his 14-game hitting streak.
The last Cubs player to reach 15 was Aramis Ramirez, who had a 16-game run in August 2011.
SWING AND A MISS
The Cubs struck out 10 times to give them 40 Ks in the past three games and 101 in the last nine, six of them losses.