Soriano's blast to left erased a 3-1 New York lead while DeWitt's home run to right in the sixth made the score 7-4 and allowed the Cubs to withstand a pair of late New York rallies.
James Russell (1-1), who got the final out in the sixth inning after the Mets tied the score 4-4, collected the win. Mets starter R.A. Dickey (9-6) allowed all seven Chicago runs and also eight hits.
David Wright doubled in two runs and scored on a ground out in putting New York up 3-0 in the first.
Dickey retired nine of the first 10 batters he faced but Starlin Castro and Marlon Byrd opened the fourth with base hits. Xavier Nady later singled in Castro and, after an out, Soriano delivered his 22nd home run of the season.
New York's Lucas Duda doubled in a run that tied the score in the sixth ahead of the Cubs' rally that ended with DeWitt's fifth home run of the year.
The Mets got single runs each of the next two innings, the first coming on a Wright home run and the second on the second career home run by Luis Hernandez.