Cabrera's shot in the third inning erased an early 2-0 deficit and his two-run double in the fourth capped a five-run uprising that broke the game open.
Yonder Alonso added two RBI while Nick Hundley chipped in with a run-scoring single as the Padres evened their three-game series.
Andrew Cashner (4-2) also knocked in a run en route to the victory. The right-hander yielded four runs on nine hits over six innings, striking out five.
Diamondbacks starter Wade Miley (3-4) was pounded for seven runs on seven hits, lasting just 3 2/3 frames.
Eric Chavez connected for a two-run homer and added a sacrifice fly for Arizona.