NEW YORK -- Zack Wheeler long ago established himself as a cornerstone player for the New York Mets. Eric Campbell might do likewise with a few more performances like the one he authored Friday night.

Campbell hit a three-run homer in the fourth inning in support of Wheeler, who won his fifth straight decision by tossing 6 2/3 solid innings as the Mets edged the Chicago Cubs, 3-2, at Citi Field.

Campbell, a 27-year-old rookie, usually offers the Mets versatility -- he made the start Friday in left field, one of six positions he's played this year -- and a steady approach at the plate that belies his relative inexperience as a big leaguer.

But Campbell displayed some power Friday. After third baseman David Wright and first baseman Lucas Duda drew walks leading off the fourth, Campbell hit his second career homer -- and first since May 21 -- on the first pitch he saw from Cubs left-hander Travis Wood.

"He's not necessarily known as a home-run hitter, but he's a pretty good hitter," Mets manager Terry Collins said. "And when he starts hitting home runs, he's going to be coming in my office asking for days off, I can tell you that."

A home-run burst may not be coming any time soon from Campbell, who has one 10-homer season on his minor league resume. But his ability to translate his gap power and ability to hit for average to the majors, along with his knack for coming through as a pinch-hitter, could allow Campbell to stick with the Mets.

Campbell is hitting .299 with eight doubles in 134 at-bats (one double per 16.8 at-bats) -- production comparable to what he did as a minor leaguer, when he hit .284 in 2,217 at-bats and averaged a double every 15 at-bats.

In addition, Campbell is hitting .389 (7-for-18) with two RBIs and three walks as a pinch-hitter.

"I'm just trying to win games right now and do the best I can," Campbell said. "I'm not worried about next year. If I play like I've always played, I'm confident that I can be here for a long time."

Wheeler has spent the summer cementing his spot near the top of the Mets' long-term rotation. The 24-year-old right-hander allowed two runs on four hits and four walks while striking out 10 Friday. It was the eighth time in nine starts he has surrendered two runs or less, a stretch in which he is 5-0 with a 2.09 ERA.

"He's pitching awfully well," Collins said. "Not the best of his command (Friday), but his stuff gets people out."

Wheeler ran into trouble in the second, when he allowed singles to the first two batters he faced before striking the next three batters, and in the third when his leadoff walk of opposing pitcher Travis Wood jumpstarted the Cubs' two-run inning.

But Wheeler, who threw 59 pitches while allowing all four Cubs hits in the first three innings, allowed just three walks the rest of the way. Collins pulled Wheeler after he walked left fielder Chris Coghlan on his career-high 120th pitch.

"I've been able to keep my walks down -- tonight was a little hiccup," Wheeler said. "Go right after guys. My command's a little bit better."

Right-hander Jeurys Familia struck out two in the eighth before right-hander Jenrry Mejia threw a perfect ninth for his 18th save as the Mets (58-65) won for just the second time in their last eight home games.

Wright went 0-for-3 as his hitting streak ended at 13 games.

For the Cubs (52-69), shortstop Starlin Castro extended his hitting streak to 14 games by going 2-for-4 with an RBI single. First baseman Anthony Rizzo had an RBI groundout.

"I thought both sides kept everybody in check," Cubs manager Rick Renteria said. "We just fell a little short today."

Wood (7-10) gave up three runs on four hits and four walks while striking out five over 5 1/3 innings.

NOTES: The Cubs, who are in the midst of 21 games in as many days, will promote RHP Dan Straily from Triple-A Iowa to start Saturday. Straily is expected to be sent back to Iowa immediately afterward. The remainder of the Cubs rotation will all be pushed back a day. ... Struggling Cubs INF Luis Valbuena didn't start Friday and won't start Saturday, either. Valbuena has just five hits in his last 45 at-bats. ... Mets RHP Jacob deGrom (rotator cuff tendinitis) is scheduled to throw Saturday for the first time since going on the 15-day disabled list Tuesday. ... Recently benched Mets SS Ruben Tejada is expected to draw a start this weekend in place of new starter Wilmer Flores.