The CID acted on a Supreme Court order sentencing Karnan to six months jail.
"We have arrested former high court judge Karnan from south India," a senior officer of the CID told PTI.
The apex court had sentenced Karnan to six months jail for contempt of court on May 9, when he was a serving judge of the Calcutta High Court.
Karnan retired from service on June 12. He became the first high court judge to have retired as a fugitive.
Three police teams from Kolkata were camping here for the last three days and traced Karnan on the basis of his mobile phone calls.
The police here gave the technical support to trace his whereabouts, the official here said.
Karnan will later be taken to Kolkata, the police said.
The arrest came eight days after the controversial former judge ended his tenure as a fugitive from law with no customary farewell being given to him in the Calcutta High Court
in view of his absence.
He has been evading arrest since May 9 after being given the jail term by a seven-judge bench of the Supreme Court headed by Chief Justice of India J S Khehar.
The court later turned down his pleas for staying the sentence.
Though the former judge arrived in Chennai on the day the Supreme Court gave the verdict, his whereabouts were not known thereafter with Kolkata Police continuing the search.
Karnan had on May 12 moved the apex court for relief, saying neither the high courts nor their judges, were "subordinate" to it.
He had sought recall of the apex court's order, contending he could not be held guilty of contempt of court.
Karnan, who enrolled as an advocate with the Bar Council of Tamil Nadu in 1983, was appointed a judge of the Madras High Court in 2009. He was transferred to the Calcutta High Court
on March 11, 2016.
He was transferred from the Madras High Court for his repeated allegations and run-ins with its then chief justice and fellow judges.