He's only 2.5, so perhaps I shouldn't worry yet, but it's a bit strange. He can't even tell the difference between red, blue, and yellow. He knows the names but gets them wrong.
On the other hand, he can recognise all kinds of shapes (oval, square, crescent, circle, star, heart, gets triangle/rectangle confused sometimes though).
Should he be able to tell the difference between basic colours by this stage? I find it odd that his colour and shape recognition seem so out of sync.