Baez won 6-3, 6-2 in 1 1/4 hours on the outdoor clay court for the 21-year-old Argentine's first career title.
Tiafoe was playing in his fourth career final, and his second in Estoril. He lost the 2018 final to João Sousa in straight sets. He won his only title at Delray Beach in 2018.
Báez converted four of five break chances and hit four aces to beat the 24-year-old Tiafoe, who struggled with his serve.
Tiafoe had reached the final after beating countryman Sebastian Korda 4-6, 7-6 (2), 6-4 after saving three match points on Saturday.