Pearce again delivered against the Mets, hitting a go-ahead single in the eighth inning that led the Pirates to a 5-2 victory Monday, ending New York's six-game winning streak.
The loss left the Mets with a 1½-game lead over idle Philadelphia in the NL East.
Adam LaRoche homered and Wilson hit a two-run double as the Pirates stopped a four-game losing skid.
Last Monday in New York, Pearce's two-run single in the ninth broke a tie and helped the Pirates rally for a 7-5 victory. The 25-year-old is hitting .222 with 13 strikeouts in 54 at-bats this season, but is 4-for-10 in three games against the Mets over the past week.
"He's making progress," Pittsburgh manager John Russell said.
"He's been working with our hitting coach Don Long, and is getting better. He worked to get a good pitch to hit. I'm sure it was a nice boost to get that."
Pearce's hit helped the Pirates, who trailed 2-0, record their 29th comeback victory.
"It seems like we're always in the game," Pearce said. "If we hang around long enough, we have the ability to get it done."
Sean Burnett (1-1) got Carlos Delgado to pop out with the bases loaded, ending the Mets eighth and preserving a 2-all tie. John Grabow pitched the ninth for his fourth save.
LaRoche singled with one out in the eighth off Pedro Feliciano (2-3). Duaner Sanchez relieved, and a single by Jason Michaels and an intentional walk to Andy LaRoche loaded the bases.
Pearce followed with a single past the dive of drawn-in third baseman David Wright, and Wilson hit his double.
"We took advantage of a couple of mistakes to push across some runs," Russell said. "It was a nice win for us."
Mets starter John Maine, making his second start since coming off the disabled list, pitched five scoreless innings. He gave up two hits, walked four and was lifted after throwing 96 pitches.
"It was just a lot of pitches, a lot of pitches," New York manager Jerry Manuel said. "We've got to find a better way of economizing those pitches at some point."
Maine said he's still dealing with the effects of a mild strain to his right rotator cuff.
"It's not getting any worse but it's not getting any better," he said "It's a little sore but I just think I have to keep doing my stuff between starts. It's going to get better. It's not getting any worse.
Brian Stokes relieved Maine in the sixth and Adam LaRoche tied it with a two-run homer.
Paul Maholm pitched at least six innings for the 19th straight start, the longest streak by a Pirates pitcher since Doug Drabek in 1992. Maholm gave up two runs and five hits in seven innings.
"We had some opportunities, but you have got to give their left-handed pitcher credit, too," Manuel said "He really made the pitches he had to when we had men in scoring position. He's probably their hottest pitcher right now. It was a difficult battle."
Manuel was ejected for the fourth time as Mets manager for arguing after an unusual double play in the third inning.
Argenis Reyes was safe when Wilson's throw to first sailed to the railing, and umpire Joe West ruled the Mets rookie made a slight turn toward second after crossing the bat. Reyes was tagged out by Pirates catcher Ryan Doumit, who was backing up the play.
"If that's the interpretation, then he was right," Manuel said.
For the eighth time in 11 games, the Mets scored in the first inning. Reyes led off with a single, Nick Evans hit the first of his two doubles and Carlos Beltran had a sacrifice fly.
Carlos Delgado's RBI grounder in the fourth made it 2-0.