Okay, here's my very simple minded take on it:
You want to rotate so that vector [itex]\vec{v}= x_1\vec{i}+ y_1\vec{j}+ z_1\vec{k}[/itex] is mapped into [itex]\vec{u}= x_2\vec{i}+ y_2\vec{j}+ z_2\vec{k}[/itex].
As monea83 and Tac-Tics said, your axis of rotation will be aligned with the cross product, [itex]\vec{u}\times\vec{v}= \alpha\vec{i}+ \beta\vec{j}+ \gamma\vec{k}[/itex] with [itex]\alpha= y_1z_2- y_2z_1[/itex], [itex]\beta= z_1x_2- z_2x_1[/itex], and [itex]\gamma= x_1y_2- x_2y_1[/itex].
The angle of rotation is given by
[tex]cos(\theta)= \frac{\vec{u}\cdot\vec{v}}{|\vec{u}||\vec{v}|}= \frac{x_1x_2+ y_1y_2+ z_1z_2}{\sqrt{x_1^2+ y_1^2+ z_1^2}\sqrt{x_2^2+ y_2^2+ z_2^2}}[/tex]
If the two vectors have the same length, so that we really are rotating one into the other and not just along the same direction, that denominator is [itex]x_1^2+ y_1^2+ z_1^2= x_2^2+ y_2^2+ z_2^2[/itex]. In fact, it wouldn't change the problem to take [itex]\vec{u}[/itex] and [itex]\vec{v}[/itex] to be unit vectors so that we have simply [itex]cos(\theta)= x_1x_2+ y_1y_2+ z_1z_2[/itex]. We don't really need to calculate [itex]\theta[/itex] itself- we only need [itex]cos(\theta)[/itex] and [itex]sin(\theta)= \sqrt{1- cos^2(\theta)}[/itex].
Now, I presume you know this but some reading this may not- in two dimensions, to rotate vector (x, y) through angle [itex]\theta[/itex] around the origin you need the matrix multiplication
[tex]\begin{bmatrix}cos(\theta) & -sin(\theta) \\ sin(\theta) & cos(\theta)\end{bmatrix}\begin{bmatrix}x \\ y \end{bmatrix}[/tex]
To see that that is true, just look at what happens to the "basis vectors" (1, 0) and (0, 1).
[tex]\begin{bmatrix}cos(\theta) & -sin(\theta) \\ sin(\theta) & cos(\theta)\end{bmatrix}\begin{bmatrix}1 \\ 0 \end{bmatrix}= \begin{bmatrix}cos(\theta) \\ sin(\theta)\end{bmatrix}[/tex]
Dropping a perpendicular from the endpoint [itex](cos(\theta), sin(\theta))[/itex] to the x- axis gives a right triangle with "opposite side" [itex]cos(\theta)[/itex] and "near side" [itex]sin(\theta)[/itex] which does, in fact, give a triangle with angle [itex]\theta[/itex] at the origin. That, transforming (1, 0) into [itex](cos(\theta), sin(\theta))[/itex] is, in fact, rotating it through angle [itex]\theta[/itex].
Similarly,
[tex]\begin{bmatrix}cos(\theta) & -sin(\theta) \\ sin(\theta) & cos(\theta)\end{bmatrix}\begin{bmatrix}0 \\ 1 \end{bmatrix}= \begin{bmatrix}-sin(\theta) \\ cos(\theta)\end{bmatrix}[/tex]
and dropping a perpendicular from that endpoint to the y-axis shows that we have a right triangle with angle at the origin of [itex]\theta[/itex].
In three dimensions, if we rotate around the z-axis, we are just rotating the x and y components as in two dimensions while z stays the same. That is, rotation through angle [itex]\theta[/itex] around the z axis is given by
[tex]\begin{bmatrix}cos(\theta) & -sin(\theta) & 0 \\ sin(\theta) & cos(\theta) & 0 \\ 0 & 0 & 1\end{bmatrix}\begin{bmatrix}x \\ y \\ z\end{bmatrix}[/tex]
From that, by the symmetry of Cartesian coordinates, it is easy to see that rotation through angle [itex]\theta[/itex] about the y-axis is given by
[tex]\begin{bmatrix}cos(\theta) & 0 -sin(\theta) \\ 0 & 1 & 0 \\ sin(\theta) & 0 & cos(\theta) \end{bmatrix}\begin{bmatrix}x \\ y \\ z\end{bmatrix}[/tex]
and that rotation through angle [itex]\theta[/itex] about the x-axis is given by
[tex]\begin{bmatrix}1 & 0 & 0 \\ 0 & cos(\theta) & -sin(\theta)\\ 0 & sin(\theta) & cos(\theta)\end{bmatrix}\begin{bmatrix}x \\ y \\ z\end{bmatrix}[/tex]
To rotate through angle [itex]\theta[/itex] around the arbitrary vector [itex]\vec{U}= \alpha\vec{i}+ \beta\vec{j}+ \gamma\vec{k}[/itex], we use the following strategy:
1) Rotate around the z-axis so that vector [itex]\vec{U}[/itex] is rotated to the vector [itex]\vec{V}[/itex] in the xz-plane.
2) Rotate around the y-axis so that the vecotr [itex]\vec{V}[/itex] is rotated to the vector [itex]\vec{W}[/itex] parallel to the z-axis.
3) Rotate around the z-axis through angle [itex]\theta[/itex].
4) Reverse the rotation in (2).
5) Reverse the rotation in (3).
(Apparently this was too long to be posted as a single post so I cut it into two.)