Yes, a game engine can be considered a framework.
A framework is essentially a software that provides generic functionality which can be selectively overridden or extended by user-written code, thereby providing application-specific software. A game engine fits this definition because it provides a suite of tools and libraries that developers can use to build and manage complex video games.
Game engines come with many pre-built features such as graphics rendering, physics simulation, AI, sound, scripting, animation, and networking among other things. Developers can use, override, or extend these features according to their specific needs for the game they're creating. This drastically reduces the amount of time and resources needed to build a game from scratch, as developers can focus more on designing and implementing the unique aspects of the game, rather than having to write these base functionalities themselves.
For example, in Unity3D, one of the most popular game engines, you can create custom behaviors by extending the
MonoBehaviour class, which is part of Unity's framework:
In this case,
Start() is a method provided by the
MonoBehaviour class that gets called at the beginning of the game. You can override this method (as well as many others provided by
MonoBehaviour) to implement your own behavior. The game engine (Unity) will call these methods at the appropriate times while the game is running.
So, while "framework" and "engine" emphasize different aspects of the tool (engine implies driving the game forward, while framework highlights the structure and support), in practical terms they both refer to reusable, extensible codebases used to build applications.