A growing number of applications may benefit from embedding receiver with the capability to separate collided packets directly on a physical layer. For example, in IoT’s random access channel scenario, a number of IoT devices are placed in the same cell, occasionally transmit messages, and are assigned non-orthogonal channel resources, giving rise to packet collisions. While channel access techniques for sharing a common channel are usually employed in most multi-user communication systems, they cause channel underutilization and increased latency. This paper considers a scenario where multiple users asynchronously transmit packets over a shared channel and are not subject to a random access mechanism, or the mechanism itself fails to prevent packet collisions. Assuming that each packet consists of a common preamble and information bearing payload, and experiences random delay, frequency offset, phase noise variation and block flat fading channel, we propose a packet separation algorithm which recovers collided packets, estimates their parameters and detects corresponding payload symbols. The performance of the proposed method is validated using simulations and benchmarked against bounds.