Mark Reynolds also drove in three runs, two of them with a home run that was part of a 15-hit attack.
Boston lost its third in a row and saw its lead over Tampa Bay in the American League East reduced to one game.
Soriano's home run came in the third inning and gave the Yankees a 6-0 lead. Twice this week, Soriano has established a career high for RBI in a single game, driving in six on Tuesday and seven Wednesday.
Soriano also reached the 2,000-hit plateau last Sunday to start his sensational week, during which he has hit six home runs.
The offensive outburst gave the win to starter Andy Pettitte (8-9), who allowed an unearned run on six hits in 6 2/3 innings. He struck out five.
Boston's Felix Doubront (8-6) was roughed up for six runs on eight hits in four innings.
Kate Middleton recycles dress at movie premiere
Jordana Brewster on Paul Walker: 'He was an enormous presence in my life'