Custom post type url Rewrite (conflicting with page url)

Thank to @Milo I was able to solve this

1) Delete anything that might be reserving /blog/ url. In my case, It was a singular page with URL /blog/.

2) Modify custom post type declaration so it has 'has_archive' => true

3) Create archive-blog.php and move your code here. (You can just use global query object for this custom post type)

4) Refresh permalink few times by settings it back to plain to custom (It actually refreshes your URL permalink.

5) Works.