You can not run a motor from the voltage output of an output pin. You will damage your arduino if you try. You need some sort of driver. A transistor or a FET.If you want control of the motor's direction you need a circuit called a H-bridge.See this for an introduction to motors:-http://www.thebox.myzen.co.uk/Workshop/Motors_1.html
This may or may not have caused permanent damage
Is any of this technology built into the official motor shield?
The bipolar ones have a large voltage drop, typically 2.5 to 3.5V. So if you want 5V to reach your motor, you will need to supply around 8V to the driver, and you will be wasting around 38% of the energy (an important consideration for a battery powered vehicle). The voltage drop also means that the driver chip gets hot.