Starting pitcher Kevin Correia (6-4) went 6 2/3 innings for the win, allowing just two runs on seven hits with four strikeouts.
Miguel Cabrera recorded two hits and an RBI for Detroit, which has dropped five straight on the heels of a seven-game winning streak.
The Pirates finally got after Scherzer and took the lead in the sixth inning.
McCutchen and Tabata started the sixth with singles, which broke up a streak of 10 straight batters retired by Scherzer. Garrett Jones then hit a ground- rule double that one-hopped the fence in right to plate McCutchen and halve the deficit.
Neil Walker's sacrifice fly, which brought home Tabata, kept the inning going while Lyle Overbay's sac fly scored Jones for a 3-2 lead. After a Ryan Doumit single, Scherzer was pulled from the game in favor of Ryan Perry, who later got a Ronny Cedeno groundout to end the inning.
Perry's outing didn't last long, though, as he gave up a walk and back-to- back singles to load the bases with no outs during the seventh.
Daniel Schlereth entered and gave up a two-run line-drive single to Diaz. Later in the inning, Tabata snuck home for a 6-2 edge before Diaz was caught in a rundown between first and second that ended the seventh.
Joel Hanrahan had a tough task of preserving the win when he entered in the ninth with two runners on base and gave up a single to Brandon Inge to load them. But he got Ryan Raburn to strike out and Austin Jackson grounded into a double play to end the game for his 13th save of the season.
Three consecutive doubles in fourth gave the Tigers a 2-0 lead.
Andy Dirks started the stretch with a deep shot into the left-center gap and scored on a double by Cabrera, who came home on Brennan Boesch's liner into center.
Jackson went 0-for-5 to end a 12-game hitting streak...Pittsburgh improved to 8-6 against Detroit at home...The Tigers placed reliever Brad Thomas on the 15-day disabled list Saturday with left elbow inflammation. To fill Thomas' roster spot, the Tigers recalled left-hander Charlie Furbush from Triple-A Toledo...The Pirates placed third baseman Pedro Alvarez on the 15-day disabled list before the game. In a corresponding move, the Pirates added Pedro Ciriaco to the 25-man roster.