How to get posts in the exact quantity in default WP query via query_posts?
If you need to manipulate the main query for a given URL, you should be filtering the arguments sent to WP_Query by hooking to pre_get_posts. That’ll stop your pagination breaking.