Hulk, 26, joined Zenit from Porto and the 23-year-old Witsel moved from Portuguese rivals Benfica.
"It's now official. Both players had signed five-year deals," Zenit spokesman Dmitry Tsimmerman said.
A club source said Zenit had paid €40 million for each player.
Hulk helped Porto to win three Portuguese league titles and the 2011 Europa League trophy after joining from the Japanese J League in 2008.
Hulk and Witsel became Zenit's first major signings in the summer transfer window, which remains open in Russia for another week.
Zenit, drawn in Champions League Group C along with AC Milan, Anderlecht and Malaga, will be able to use both players in Europe's premier club competition.
"We were trying to sign them before the September 3 deadline for the Champions League so they can play for us in that competition as well as the Russian league," Tsimmerman said.
Media reports also linked big-spending Zenit, backed by Russian energy giant Gazprom, with a bid for Manchester United's Portuguese striker Nani.
Tsimmerman declined to comment on Nani's possible transfer.