La portavoz de la Cancillería en Moscú confirmó la noticia.
El atacante gritó «Allahu akbar (dios es grande). ¡No se olviden de Aleppo! ¡No se olviden de Siria! ¡No se olviden de Aleppo! ¡No se olviden de Siria!».
Luego añadió: «Aléjense, aléjense de mí».
«Sólo la muerte me sacará de aquí. Todos los que han tomado parte en esta opresión pagarán algún día por ello», dijo en turco mientras agitaba una pistola en el aire.
El atacante fue neutralizado, según añade la agencia. No se sabe si fue dado de baja o capturado por la policía.
Karlov fue trasladado a un hospital en estado grave.
El embajador estaba dando un discurso durante la ceremonia de lanzamiento de una exposición de fotografía cuando un hombre armado abrió fuego en su contra.
Karlov comenzó su carrera diplomática en 1976 y ha sido enviado en Turquía desde 2013.
Autos policiales acudieron a la escena minutos después del ataque.
Reportes iniciales señalan que el atacante habría protestado por la interferencia rusa en el conflicto en Siria. CNN no ha podido confirmar esta información de manera independiente.