The @Injectable decorator in NestJS marks a class so the framework knows to manage it as a provider. When NestJS starts, it scans for classes with @Injectable and registers them in its dependency injection container. Later, when another class needs this provider, NestJS creates an instance and injects it automatically. This process allows easy sharing and reuse of services. Without @Injectable, NestJS will not recognize the class for injection, causing errors. The execution flow starts with defining the class, applying the decorator, registering the provider, injecting the instance, and finally using the class methods.