The one with the winning strategy is quite surprisingly
>! X

and the strategy is
>! Start in the center. First, let us note that if X starts anywhere else, O wins on their first move like this  
>! <pre> |X \*|     |\*X |  
>! |   |     |O\* |  
>! |\* O|     |   |</pre>  

First options
>! When X starts in the center, O has two options, corner, which gives X zero winning moves or middle, which gives X six winning moves  
>! <pre> |O  |     |\*O\*|  
>! | X |     |\*X\*|  
>! |   |     |\* \*|</pre>  

Case 1
>! If O goes for the corner, X wins like this  
>! <pre> |O  |    |OX |    |OXX|    |OXX|  
>! | X | -> | X | -> | X | -> |\*XX|  
>! |   |    | O |    |OO |    |OO\*|</pre>  

Case 2
>! If O goes for the middle, X wins like this  
>! <pre> | O |    | OO|    |XOO|  
>! | X | -> | X | -> | X |  
>! |   |    |X  |    |X  |</pre>

Case 2 continued
>! As we can see, X has now two possible winning lines but it is O's turn. If O tries to block one of the winning lines, X has exactly one winning move. However, if O doesn't block either of the lines, then X will eventually win with any of the three remaining cells so X has three winning moves. Thus, either way, X will eventually win.