La tercera forma es la correcta, quizá se te escapó algún detalle fuera de esa sentencia o probablemente el tipo del campo "contador" no sea numérico. En otras páginas también recomiendan hacerlo así, incluso en el manual oficial de MySQL:
-
Incrementar campo de MySQL con un único update
-
Increment value in mysql update query
-
Sintaxis de UPDATE (Manual oficial de MySQL)
Revisa bien tu código y los datos en la BD, lo más probable es que se te esté escapando algún detalle que no logres ver a simple vista.
Saludos