The 26-year-old Pefok, whose full name is Theoson-Jordan Siebatcheu, was joining from Swiss team Young Boys, Union said on Thursday.
"Jordan is a striker who will suit us well with the way he plays soccer and who can play in different systems. We're looking forward to him, his goal threat, and the fact that he has chosen Union," club managing director Oliver Ruhnert said.
Pefok made his debut for the United States last year and has one goal in nine international appearances. He played for France Under-21s but opted to represent the U.S. in March last year.
Pefok, whose parents are from Cameroon, was born in Washington D.C. but moved with his family to France. He joined Stade de Reims at age seven and made his debut for the team in 2015.
Pefok helped Reims to promotion in 2018 before joining Stade Rennes. He was loaned in 2020 to Young Boys, where he impressed to make the loan move permanent. Pefok scored 27 goals in 45 games across all competitions last season, including the Champions League and qualifying for that competition.
Pefok memorably scored a stoppage-time winner in Young Boys' 2-1 victory over Manchester United in their Champions League group-stage opening game last September.
"After two successful years in Bern, where I had the perfect environment to develop as a young player, I now have the next step in my career ahead of me," Pefok was quoted as saying. "I want to prove myself in the Bundesliga and I'm convinced that I've found the right club in Union."
Pefok said Union's disciplined counterattacking style "suits me very well and I'm happy to go hunting for goals for the 'Eisernen' (the iron ones) in the unbelievable atmosphere" of the club's Stadion an der Alten Forsterei.