Henry limited the Pirates to four hits over seven innings and the Diamondbacks held off a late rally as Michael Chavis homered twice to hold on for a 6-4 win Tuesday night at Chase Field in Phoenix.