Thonakal clocked 2 hours, 15 minutes and 48 seconds to clinch the gold. Andrey Petrov of Uzbekistan bagged the silver with a timing of 2:15:51s, while Byambalev Tseveenravdan of Mongolia won bronze by clocking 2:16:14s.
The 29-year-old from Wayanad district of Kerala had won the New Delhi Marathon in 2.15.37 earlier this year. He was 28th in the London World Championships in August with a timing of 2:17:13.
In the Rio Olympics last year, he had clocked his personal best of 2.15.25 while finishing 25th.
"I am proud to have won a gold for my country. I am also proud to become the first Indian man to have won a gold in this championship," Thonakal told PTI after the race.
"I was confident of clocking a very good time today. I could change gear according the situation of the race. I had a lot in my tank and I feel I could have run a faster time," he added.
Asked about his chances in big events next year, including the Asian Games, he said, "Now that I have won the Asian Championships, naturally I can look forward to winning a medal in the Asian Games also.
"But you never know, I will give my best and try to win a medal in the Asian Games. Let us see."
Thonakal is the first Indian male runner to have won the Asian Marathon Championship. Vijay Singh (1988) and Deep Chand (2010) have earlier won a bronze each.
He is the third Indian overall to have won a gold in the event. Asha Agarwal won the women's title in 1985 when the event was a part of the biennial Asian Track and Field Championships. Sunita Godara won the women's title in 1992 after the event was moved out as a separate one away from the Asian Athletics Championships in 1988.
Vally Sathyabhama and Indiresh Dhiraj are the other two Indian women medallist as they have won a silver and bronze respectively in the 1998 edition.