How to make blog posts appear under different menu items?

By default, “Category Archives” (which is what you’re describing) are at the URL example.com/category/{category}. I would recommend that you do the following:

  1. Delete your blog and portfolio pages. Don’t just trash them, but delete them permanently from your trash (this will free up the permalinks you mention in your post).
  2. Create the two categories, Blog and Portfolio and make sure they have the slugs “blog” and “portfolio.”
  3. Download a plugin that can remove the “Category base” that is the /category/ in the example.com URL above. Since it’s a great plugin for other reasons, I’d recommend using Yoast’s “WordPress SEO” plugin (the setting is found under SEO > Permalinks.

You should now see the two category archives, each displaying posts in the appropriate categories.

You’ll also need to go back, delete your two menu items, and add them back your new Categories back into the menu.