making an object move to a certain point

I got a character and I want it to move backwards (like a knockback effect) when it hits an object. So I got the collision working but my problem is the moving part.
I’m using this funcion to make it move backwards but the problem is that he keeps going, how can I make him stop at a certain point? or maybe you can suggest a better way:

transform.Translate(Vector3.left * moveSpeed * Time.deltaTime);

This is all in 2D, with C#.

(Just need him to move backwards from a certain X to another).

In my opinion You shouod usse mathf.lerp:

It will “send” your character from point a to point b within the duration of time that you’ve declared.

For more informations read this : How the heck does Mathf.Lerp work? - Unity Answers

If you are using a rigidbody, I think adding forces is better than translation. Try with the different force modes.

I get errors, here is my script:

        private float curPosX;
	    private float newPosX;

	void OnTriggerEnter2D(Collider2D other) {
		if (other.tag == "TrapLevel1")
			transform.position.x = Vector2.Lerp(curPosX, newPosX, Time.deltaTime);


	// Update is called once per frame
	void Update () {
		curPosX = tranform.position.x;
		newPosX = tranform.position.x - 10;

I want that the object will move backwards by 10 in X position when it collides with “TrapLevel1”

Assets/Sample Assets/2D/Scripts/PlayerHitTrap.cs(25,56): error CS1502: The best overloaded method match for `UnityEngine.Vector2.Lerp(UnityEngine.Vector2, UnityEngine.Vector2, float)’ has some invalid arguments