Terms of the deal weren't released, but MLB.com reported it guarantees $33 million in base salary over the three-year period.
Brewers General Manager Doug Melvin said the deal is a good one because Lohse is "coming off two very good years (with the St. Louis Cardinals) and his experience and competitiveness will be welcomed by the club," adding, "This signing makes us a better club today than we were yesterday."
The 34-year-old Lohse has gone 30-11 with a 3.11 ERA in 63 starts over the last two seasons in St. Louis, where he produced his best MLB season in 2012 with a 16-3 record and a sparkling 2.86 ERA in 33 starts.
Lohse led the National League in winning percentage (.842) and was one of the NL's workhorses in number of starts.
His addition will give Milwaukee a second experienced starter behind ace Yovani Gallardo. The Brewers are mainly counting on younger hurlers such as Marco Estrada, Wily Peralta, Chris Narveson and Mike Fiers.