Reliable data transmission is a fundamental challenge in resource-constrained wireless sensor networks. In current implementations, a single bit error requires retransmitting the entire frame. This incurs extra processing overhead and power consumption, especially for large frames. Frame fragmentation into small blocks with individual error detection codes can reduce the unnecessary retransmission of the correctly received blocks. The optimal block size, however, varies based on the wireless channel conditions. In this paper, we propose an interference-aware frame fragmentation scheme called iFrag. iFrag dynamically adjusts the number of blocks inside a frame based on current channel conditions, and effectively addresses all challenges associated with such dynamic partitioning. Through analytical and experimental results, we show that iFrag achieves up to 3× improvement in goodput when the channel is noisy, while reducing the delay by 12 % compared to other static fragmentation approaches. On average, it shows a 13 % gain in goodput across all channel conditions used in our experiments. Our testbed results also show that iFrag lowers the energy consumed per useful bit by 60 %, as improved data transmission reliability reduces the number of frame retransmissions which increases the motes energy efficiency.