Alleged ISIS militant Abdulkadir Masharipov was wanted in connection with the shooting spree which left nearly 70 injured.
Police arrested five people, including the alleged gunman, state-run Anadolu news agency says.
Masharipov is said to have been caught in the Istanbul district of Esenyurt.
Cops seized the suspect in a raid at the home of a friend in the city.
He was due to undergo medical checks before being taken in for interrogation at a police headquarters.
A photo being circulated on Turkish media shows what appears to be Masharipov in a bloodstained t-shirt with cuts and bruises to his face, being held by the neck.
He was reportedly pinned down by officers next to his four-year-old son after Turkish security forces finally tracked him down.
It's claimed Masharipov fought in Syria for the terror group and was "specially selected" to carry out the nightclub rampage.
He reportedly moved to Turkey from Kyrgyzstan with his wife and two kids on November 20 and spent some time in Konya province before returning to Istanbul just days prior to the terror attack on December 15.