Here's what's happening. Assume all three Q outputs are zero-call them Q1,Q2,Q3 from left to right. On the first clock pulse, Q1 goes high, which will clock Q2 high. Q2 going high will clock Q3 high. So you've just counted from 000 to 111. On the next clock pulse, Q1 goes low==> 110. On the third pulse, Q1 goes high, clocking Q2 low==>101. And so on.
It may not be doing what you WANT it to do, but it's doing exactly what it's supposed to do.
Try this: Use the Qbar output to clock the next stage, not the Q output.