The big difference is:
when use F12 Render, blender engine will render your scene using your settings(like motion blur,mist, complicated light and effects) ignoring your hardware limitation, blender engine will draw your scene(very slow ...very quick...not matter.. will draw it).
When use viewport rendering, blender is limited to hardware limitation and OpenGL abilities which blender uses it.
You can render your scene by blender engine or Viewport rendering, but to get same result, you need to use many tricks in viewport rendering mode to get same result of rendering by F12.
F12: Easy Design, Slow Rendering(depends on your hardware and scene).
View port Render: Hard Design, Very fast rendering(it's big and wonderful challenge)
cute scenes BY viewport rendering