Ambrose will move to Selhurst Park when his contract ends this summer at The Valley.
The 25 year old midfielder has scored 13 goals in 78 starts for Charlton since his £1.5 move to the Valley in 2005.
He spent part of last season loan at Ipswich.
"I am ever so pleased," said Warnock.
"He is one I have been after for a while and I bid a £1m for him when I was at Sheffield United but he went to Newcastle instead.
"I am delighted really, he is a young lad with so much to prove.
"He just needs to enjoy himself a bit and play with a smile on his face."