Template instantiation is a process in C++ programming where a template is used to create a specific instance of a class or function by substituting template parameters with actual types or values. This mechanism allows for code reuse and flexibility while maintaining type safety and efficiency in generic programming.