The powerful 25-year-old, who played for the Real Madrid reserves between 2007-2010, has scored 21 goals in 79 Bundesliga games since joining Mainz on loan three years ago.
"We have agreed with Mainz 05 on the transfer of Szalai, we are currently exchanging contracts and are waiting for the medical check," Schalke sports director Horst Heldt said on the club's Twitter feed.
Schalke will play in next season's Champions League qualifying rounds after finishing fourth in the Bundesliga.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.