Boston won its sixth straight game.
Home runs by J.D. Drew in the fourth and Davis Ortiz in the seventh gave Boston a 3-1 lead but the Tigers tied it in the eighth on solo shots from Brennan Boesch and Miguel Cabrera.
Al Albuquerque took the mound for Detroit in the ninth to try to force extra innings but he loaded the bases on two walks and a single. Kevin Youkilis was forced at home on a fielder's choice off the bat of Jed Lowrie, after which McDonald was called in to run for Ortiz at third.
Crawford followed by hitting a 1-1 pitch from Albuquerque (0-1) over the head of center fielder Austin Jackson for what was scored a single.
Justin Verlander, who threw a no-hitter against Toronto May 7 and then took a no-hitter into the sixth against Kansas City in his next start, worked the first eight innings for the Tigers. He gave up three runs on six hits with nine strikeouts.
Boston closer Jonathan Papelbon (2-0) got the win by working a very shaky top of the ninth. He loaded the bases with one away before getting both Boesch and Cabrera on strikes to end the threat.