The reason you give does not work merely for the fact that the force F and the friction balance each-other, thus creating no relative motion between the top block, and the bottom one. But, as the surface on which the system rests is friction-less, a net-force F acts on the lower block----- the frictional-force, which acts on the lower-block in the direction, same as that in which, the force F is directed. This direction is just the opposite to the direction of frictional-force, acting on the top block. Thus, there's a net acceleration of the system, in the direction, in which F has been applied. As our system contains both top, and lower blocks, the top-block moves along with the lower block, without slipping on the latter. Thus, the apparent paradox is resolved.
Response to comment:
Your confusion is then why the top block skids forward relative to the bottom. There's two type of friction: static, and kinetic. If the force F you apply exceeds the static friction, the top block will move relative to the bottom, and its acceleration relative to the lower-block is then due to force (F-kinetic frictional force). Thus, its cumulative motion is due to the relative motion, as well as motion of the system. The frictional-force is a self-adjusting force, and when the force F is lower than the static-friction, then there's no relative motion (and hence, no relative acceleration) between the blocks, and its motion is entirely due to system's motion.
In my previous post, I considered that F does not exceed the static-frictional force between the blocks. Hope it is a bit more clear to you now.
P.S., to be precise and to the point:
The top block skids on the lower only when the force F applied on the top block exceeds the static-frictional force acting between the lower-surface of the top-block, and the upper-surface of the lower-block.
We know, that kinetic-frictional force between any two surfaces is always smaller than the static-frictional force between them.
Once the top-block starts skidding on the lower block, the friction that acts between the two surfaces in contact, is the kinetic-frictional force, which is lower than the static-frictional force between them.
But, the force F applied is greater than the static-frictional force.
So, force F applied on top-block is greater than the force of friction (kinetic-frictional force)
*Or, "force of friction is less than the force applied on the block in this situation".
Thus proved.
Hope you follow the arguments well.