In the 11th, Khris Davis, who went 4-for-6 with two runs and an RBI, hit a ground-rule double off Badenhop, followed by Schafer's double to left-center.
"Frankie [Francisco Rodriguez, Milwaukee's closer] won the game with nasty stuff, but it felt really good to put us up," Schafer said. "It was a battle of a game and it was really, really fun. I was freezing the whole game. We were all cold so we were like, 'Hey, let's hurry up and score and get out of here.'"
Milwaukee reliever Tyler Thornburg, who pitched a scoreless 10th, got the win. Rodriguez closed it out, earning the save with a perfect 11th, striking out Mike Napoli, Xander Bogaerts, and Jonny Gomes, all swinging at changeups.
As for Buchholz, it took the right-hander seven starts and 45 innings last season to give up six runs. The Brewers knocked him around for that many runs in just 2 2/3 innings Saturday.
Buchholz lasted 4 1/3 innings, giving up six runs on 13 hits, including two home runs, with three strikeouts.
"Missed with a lot of pitches tonight and when I did, they seemed to put the barrel on it and find some holes," Buchholz said. "Obviously the couple of home runs they hit were pitches where they weren't supposed to be. Just a lot of mistakes.
"You don't want to give up that many hits ever, but they were swinging early and that's what I want teams to do. I want them to swing. I want them to put balls in play. I got to do a better job of limiting that and obviously putting pitches where I want to. I wasn't able to do that at all tonight really. And that's the way the game goes sometimes. So I've got to figure it out before the next time out."
The weather was rough for both teams -- 48 degrees with a 14-mph wind at first pitch, dropping to 39 degrees by the time the game ended four hours and 23 minutes later.
"As much as I want to say you just tough it out, it's hard when the wind's blowing, it's cold and you're standing out there a long time," said Brewers manager Ron Roenicke. "It definitely adds to it."
"It took a little bit to get loose. It was pretty cold out there," Buchholz said. "But other than that it was just basically missing middle of the plate or missing up, and that's where they hits came off of. I don't think I threw one good pitch that they hit that I look back on and say, 'I don't think you should have hit that pitch.' So that's the way it goes."
The Brewers scored in each of the first three innings -- one in the first, two in the second and three in the third. The Red Sox offense, though, tried to keep pace. Despite recording just four hits, the Sox had five runs on the board after three innings, thanks to a couple of third-inning Milwaukee miscues. Another error in the sixth allowed the Sox to tie the game.
But that wasn't enough.
"There's no really moral victories in this game," said Sox catcher A.J. Pierzynski. "You either win or you lose. It's nice to look back and say, 'Hey, the bullpen pitched great, gave us I don't know how many scoreless innings, six, seven scoreless innings, gave us a chance to be in the game.' But at the end of the day you want to win games like that. And today we just didn't."
After Buchholz gave up solo home runs in the second to Mark Reynolds and Carlos Gomez, Boston was down three runs. The Sox scratched out two runs in the bottom of the inning when Bogaerts and Gomes connected for consecutive one-out singles. Pierzynski's groundout scored Bogaerts and Jonathan Herrera's single scored Gomes.
But the Brewers came back with three runs in the third. Jonathan Lucroy led off with a double, followed by back-to-back singles from Aramis Ramirez and Davis for a run. With two outs, Scooter Gennett's double scored two more runs.
The Red Sox made it a one-run game in the bottom of the inning when Grady Sizemore drew a one-out walk from right-hander Wily Peralta and Dustin Pedroia reached on an error by Ramirez at third base. Daniel Nava's ground ball to shortstop Jean Segura appeared perfectly placed for a double play to get Peralta out of the inning. But Segura bobbled the ball and was only able to get Nava at first. Napoli stepped up and crushed a home run, his second of the season, to straightaway center field, scoring three runs and closing the Sox deficit to 6-5.
With one out in the fifth and runners on the corners, Buchholz's night was done. He needed 72 pitches, 54 for strikes to get through his outing. Left-hander Chris Capuano entered, getting Gennett to fly out before striking out Martin Maldonado to end the threat.
Right-hander Jim Henderson replaced Peralta in the sixth, but allowed his first two batters to reach -- Bogaerts on a double, and Gomes on a walk -- before lefty Zach Duke replaced him. Duke induced a double play from Pierzynski and looked to be out of the inning when Herrera hit a grounder to Segura. But Segura booted the ball for the Brewers' second error, allowing the tying run to score, before Duke struck out Jackie Bradley looking.
With two outs in the ninth, David Ortiz, who had been given a scheduled day off, stepped to the plate, pinch-hitting for Bradley. But instead of one of his walk-off shots, he grounded out to send the game to extra innings.