Vidal, who has Bundesliga experience having played for four seasons at Bayer Leverkusen, will join the league champions subject to a medical.
The fee for the 28-year-old midfielder is an initial £26million, with an additional £2million offered in add-ons.
Speaking to a press conference while on Bayern’s pre-season tour in Guangzhou, Bayern chairman Karl-Heinz Rummenigge announced the deal.
“I can confirm that we have reached an agreement with both parties, Juventus and the player,” he said.
“All that is lacking now is the medical and the signatures on the contract,” which Rummenigge added should happen within the next week.
The Chile captain joined Juventus in 2011 from Leverkusen, winning four consecutive Serie A titles and helping them finish as Champions League runners-up last season.
Having already lost Andrea Pirlo this summer, Vidal’s exit from Turin will be hard felt, but the signing of Sami Khedira and imminent arrival of Julian Draxler – who Juve opened talks with on Wednesday – will soften the blow.