Did you notice this?

In season one, Hannibal manipulates Will, frames him for crimes he committed, locking him away in prison as a way of controlling his emotions. By imprisoning Will, Hannibal hoped to contain his growing feelings for him, emotions he could not fully understand or accept. Will’s confinement was less about punishment and more about keeping his emotions caged.

While in prison, Will sends someone to kill Hannibal. Though afraid for his life, Hannibal is, paradoxically, impressed by Will’s ability to provoke such an action, even indirectly. He tells Will that, even though he’s imprisoned, he’s more in control than ever before. However, rather than feeling victorious, Hannibal is driven by the desire to repair their fractured connection. He orchestrates Will’s release because he wants to be his friend.

By season 3 Will becomes the one who manipulates Hannibal. He pushes Hannibal into a position where he surrenders voluntarily, choosing to sacrifice his freedom and life. He wasn’t looking to imprison Hannibal, but to dominate feelings he felt victimized by. In prison, Hannibal sends someone to kill Will. Hannibal may be physically confined, but Will says he “has agency in the world”. Will orchestrates Hannibal’s escape, because he is his friend, and he wanted to run away with him. But he didn’t. So he picked up the pieces of the broken teacup he swore would never gather itself back together, and he reversed time, and ran away with his friend.