The 27-year-old spent last season on loan at Chesterfield, scoring 15 goals in 38 appearances for the Spireites.
Novak has agreed a three-year contract at The Valley and becomes the Addicks' third signing of the summer.
"Lee has shown a consistency at both Championship and League One level and is a proven goalscorer," Charlton boss Russell Slade told the club website.
Novak joined Birmingham from Huddersfield in summer 2013 and scored 12 goals in 69 outings for the Blues.
Meanwhile, Charlton striker Igor Vetokele has joined Belgian Pro League side Zulte-Waregem on a season-long loan deal.
Zulte-Waragem have an option to buy the 24-year-old Angola international as part of the deal.
Vetokele moved to south-east London in the summer of 2014 and scored two goals in 18 appearances in 2015-16.
Find all the latest football transfers on our dedicated page.
League One side Charlton Athletic have signed Lee Novak following the striker's departure from Birmingham.