Best option for smooth player knockback

Hello,
I am currently making a move in a game where the player punches an enemy, the enemy gets knocked back and then 2 seconds later the enemy stops being moved by the knockback and the player TPs behind the enemy and hits them again. I was at first using BodyVelocity but when I would stop the body velocity and anchor the enemy the player would not TP directly behind the enemy on client side so I suspected there was some physic problems. Then I switched over to TweenService for the knockback, it works well and I could continue using it but it just looks not that smooth, maybe because of how fast it is moving. Is there any better option to knockback players that is more visually appealing and smooth?

Example
https://www.roblox.com/games/4195834406/UPDATE-1-3-Dragon-Ball-Online-Generations
This game has some pretty smooth knockbacks in my opinion and I suggest you watch a youtube video on the game to get an idea of what I want.

Tween service to me seems like the best option in this case, but you said that it wasn’t that smooth. Did you play with the easing style? That might help. ( The InOut Direction also makes it smoother in some cases. )

An animation could also work, but that might be a bit much for what you want to do. Maybe a mix of animation and tween service for CFrames.

I want the knockback to be the same rate so I chose linear. How would animations make it look smoother?